{"id":1086,"date":"2025-03-30T23:45:12","date_gmt":"2025-03-30T21:45:12","guid":{"rendered":"https:\/\/alfard.ovh\/?page_id=1086"},"modified":"2026-03-31T18:35:48","modified_gmt":"2026-03-31T16:35:48","slug":"czas-letni","status":"publish","type":"page","link":"https:\/\/alfard.ovh\/index.php\/czas-letni\/","title":{"rendered":"Czas letni&#8230;"},"content":{"rendered":"\n<p>Post\u0119powanie jakie zastosowa\u0142em rozwi\u0105zuje problem. Polega na:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>zapisywaniu pomiar\u00f3w do tabeli z czasem UTC co w PHP uzyska\u0142em poleceniem: date_default_timezone_set(&#8217;UTC&#8217;);<\/li>\n\n\n\n<li>przed odczytaniem i pokazaniem tych pomiar\u00f3w nale\u017cy ustali\u0107 czy obserwujemy je w czasie letnim czy zimowym. To rozwi\u0105zuj\u0105 w PHP polecenia: date_default_timezone_set(&#8217;Europe\/Warsaw&#8217;), mysqli_query($connection,&#8221;SET time_zone = 'Etc\/GMT+0&#8242;&#8221;), $rmd = new DateTime(date(&#8217;Y-m-d&#8217;,$xMax)), $tzo=-$rmd->format(&#8217;Z&#8217;)\/60. Ten ostatni $tzo w minutach jest potrzebny HighChart w poleceniu: Highcharts.setOptions( { time: { timezone: 'Europe\/Warsaw&#8217;, timezoneOffset:}});<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Profesjonalny serwer na OVH<\/h2>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"368\" height=\"194\" src=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/03\/ZmianaCzasuZimowy-Letni.jpg\" alt=\"\" class=\"wp-image-1088 size-full\" srcset=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/03\/ZmianaCzasuZimowy-Letni.jpg 368w, https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/03\/ZmianaCzasuZimowy-Letni-300x158.jpg 300w\" sizes=\"auto, (max-width: 368px) 100vw, 368px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Za pomoc\u0105 polecenia date(&#8217;Z&#8217;) i date(&#8217;I&#8217;) uzyska\u0142em kolumny Tzone oraz Letni.<\/p>\n\n\n\n<p>Rekordy wprowadzane co 5 minut maj\u0105 przerw\u0119 mi\u0119dzy 2:00 a 3:00, kiedy nast\u0105pi\u0142o wiosenne przesuni\u0119cie zegara. To jest nieprawid\u0142owe. Pomiary powinno si\u0119 zapisywa\u0107 w niezmiennym czasie UTC wtedy czas mo\u017ce by\u0107 niezgodny z naszym zegarkiem ale nie b\u0119dzie wiosennych &#8222;dziur&#8221; lub nak\u0142adania si\u0119 jesiennych danych.<\/p>\n<\/div><\/div>\n\n\n\n<p>Zmiana czasu w odniesieniu do baz danych zawieraj\u0105cych sekwencje pomiar\u00f3w jest niema\u0142ym wyzwaniem my\u015blowym bo o ile wiosn\u0105 nie stracimy pomiar\u00f3w to ju\u017c jesieni\u0105, kiedy cofniemy wskaz\u00f3wki z 3:00 na 2:00 to stracimy cenne skrupulatnie zbierane rekordy danych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">jesienne cofanie<\/h2>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:45% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"243\" height=\"267\" src=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/11\/ZmianaCzasuMinus2.jpg\" alt=\"\" class=\"wp-image-1337 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p>dziwny jesienny powr\u00f3t do czasu UTC+01:00 w bazie na serwerach OVH. Jest to przyk\u0142ad nieprawid\u0142owego zapisu danych w bazie.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"713\" height=\"391\" src=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/10\/ZmianaCzasuMinus.jpg\" alt=\"\" class=\"wp-image-1331 size-full\" srcset=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/10\/ZmianaCzasuMinus.jpg 713w, https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/10\/ZmianaCzasuMinus-300x165.jpg 300w\" sizes=\"auto, (max-width: 713px) 100vw, 713px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Przy jesiennej zmianie czasu 26X2025 wykres wykonany za pomoc\u0105 HighChart jest godny analizy. Nie wnikaj\u0105c jakie otrzyma\u0142 dane to o\u015b odci\u0119tych jest zadziwiaj\u0105ca: godziny od 2:00 do 2:00 (3:00) wyst\u0119puj\u0105 podw\u00f3jnie!<\/p>\n<\/div><\/div>\n\n\n\n<p>Prezentacja danych zebranych w noc zmiany czasu mi\u0119dzu godzin\u0105 2:00 a 3:00 czasu letniego jest do\u015b\u0107 karko\u0142omna ale jak wida\u0107 HighChart sobie nie\u017ale radzi. PKP niestety nie &#8211; bo zatrzymywanie poci\u0105g\u00f3w o 2:00 w nocy jest nieakceptowalne z punktu widzenia pasa\u017cera jakim nie raz by\u0142em.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Amatorskie rozwi\u0105zania QNAP i unRaid<\/h2>\n\n\n\n<p>Wiosn\u0105 2025 te serwery nic nie zmienia\u0142y. Czas jaki poda\u0142 PHP zosta\u0142 zapisany w bazie i mi\u0119dzy drug\u0105 a trzeci\u0105 wszystko zapisywa\u0142o si\u0119 po staremu. unRaid obs\u0142uguje kontener z baz\u0105:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"414\" height=\"115\" src=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/03\/MariaDB.jpg\" alt=\"\" class=\"wp-image-1098\" srcset=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/03\/MariaDB.jpg 414w, https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/03\/MariaDB-300x83.jpg 300w\" sizes=\"auto, (max-width: 414px) 100vw, 414px\" \/><\/figure>\n\n\n\n<p>niestety polecenia date(&#8217;Z&#8217;) i date(&#8217;I&#8217;) zwracaj\u0105 zero wi\u0119c nie informuj\u0105 ani o strefie czasowej ani o zmianie czasu letni\/zimowy<\/p>\n\n\n\n<p>Podobnie QNAP wymaga w\u0142asnych r\u0119cznych rozwi\u0105za\u0144 przy zmianie czasu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jesienna zmiana<\/h2>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"423\" src=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/10\/ZmianaCzasuMinusQR.jpg\" alt=\"\" class=\"wp-image-1335 size-full\" srcset=\"https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/10\/ZmianaCzasuMinusQR.jpg 704w, https:\/\/alfard.ovh\/wp-content\/uploads\/2025\/10\/ZmianaCzasuMinusQR-300x180.jpg 300w\" sizes=\"auto, (max-width: 704px) 100vw, 704px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Przy jesiennej zmianie czasu 26X2025 wykres wykonany za pomoc\u0105 HighCharts na osi X zdublowa\u0142 godzin\u0119 1:00 ale nie zgubi\u0142 pomiar\u00f3w wykonywanych w &#8222;cofni\u0119tej&#8221; godzinie.<\/p>\n<\/div><\/div>\n\n\n\n<p>Pomiary mo\u017cna u\u015brednia\u0107, interpolowa\u0107 i ekstrapolowa\u0107 natomiast systemy monitoringu nie mog\u0105 &#8222;gubi\u0107&#8221; rejestracji. Ciekawe jak pokazuj\u0105 te z czasu mi\u0119dzy 2:00 a 3:00 czy pytaj\u0105 o czas letni i zimowy ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Post\u0119powanie jakie zastosowa\u0142em rozwi\u0105zuje problem. Polega na: Profesjonalny serwer na OVH Za pomoc\u0105 polecenia date(&#8217;Z&#8217;) i date(&#8217;I&#8217;) uzyska\u0142em kolumny Tzone oraz Letni. Rekordy wprowadzane co 5 minut maj\u0105 przerw\u0119 mi\u0119dzy 2:00 a 3:00, kiedy nast\u0105pi\u0142o wiosenne przesuni\u0119cie zegara. To jest nieprawid\u0142owe. Pomiary powinno si\u0119 zapisywa\u0107 w niezmiennym czasie UTC wtedy czas mo\u017ce by\u0107 niezgodny z [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1086","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/pages\/1086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/comments?post=1086"}],"version-history":[{"count":9,"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/pages\/1086\/revisions"}],"predecessor-version":[{"id":1438,"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/pages\/1086\/revisions\/1438"}],"wp:attachment":[{"href":"https:\/\/alfard.ovh\/index.php\/wp-json\/wp\/v2\/media?parent=1086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}