Mam uniksowy znacznik czasu, który jest ustawiony na +5, ale chciałbym przekonwertować go na -5, EST Standardowy czas. Po prostu generowałbym znacznik czasu w tej strefie czasowej, ale chwytam go z innego źródła, które umieszcza na +5.Konwersja znacznika czasu Unix do strefy czasowej?
Aktualny niemodyfikowane Datownik przekształcana randkę
<? echo gmdate("F j, Y, g:i a", 1369490592) ?>
Pracował idealnie. Dzięki =) –
Popraw mnie jeśli się mylę @John Z pewnością to nie działa? Ta metoda użyje domyślnej strefy czasowej systemów (PHP Config), która nie określiła jej podczas tworzenia instancji obiektu DateTime. Podobnie jak [tutaj] (http://stackoverflow.com/a/17098897/234631). Czy więc podczas konwersji do Ameryki/Chicago zmiana zostanie zmieniona na strefę czasową systemu, zakładając, że nie jest to taki sam jak +5, jak sam znacznik czasu UNIX, który próbuje zmienić o ~ 10 stref? –
@Stefan Rzeczywiście jest źle. Uniksowe znaczniki czasu to zawsze UTC. Niektóre zabawne próbki kodu: ini_set ("date.timezone", "America/Los_Angeles"); $ now = time(); $ utc = new DateTime ("@ {$ now}}", nowy DateTimeZone ("America/New_York")); echo "{$ utc-> format (" c ')} \ n "; // 2014-08-27T15: 24: 09 + 00: 00 $ utc = new DateTime ("@ {$ now}"); echo "{$ utc-> format (" c ')} \ n "; // 2014-08-27T15: 24: 09 + 00: 00 ini_set ("date.timezone", "UTC"); $ utc = new DateTime ("@ {$ now}}", nowy DateTimeZone ("UTC")); echo "{$ utc-> format (" c ')} \ n "; // 2014-08-27T15: 24: 09 + 00: 00 –