Я пытаюсь написать сценарий, где я хочу конвертировать любой часовой пояс в UTC
и наоборот. Но от некоторых, где я узнал, что при преобразовании любого часового пояса в UTC
с учетом DST или без него, это даст то же время UTC
. Например: если я попытаюсь преобразовать это:
$mytime = '2011-03-31 05:06:00.000'; $myzone = 'America/New_York';
к UTC с DST и без DST, я получу ..
(New_York->UTC DST=Yes)2011-03-31 09:06:00 (New_York->UTC DST=No)2011-03-31 09:06:00 ..........
Является ли это причиной? Если да, то почему ??? Пожалуйста, дайте мне свои ответы.
Нет, UTC никогда не имеет DST. Это постоянная система отсчета, в которой другие временные зоны выражены относительно.
Из Википедии UTC страница :
UTC не изменяется с изменением времен года, но местное время или гражданское время могут измениться, если юрисдикция часового пояса соблюдает летнее время или летнее время. Например, UTC на 5 часов опережает местное время на восточном побережье Соединенных Штатов в течение зимы, но на 4 часа вперед в течение лета.
Другими словами, когда часовой пояс наблюдает за DST, его смещение от UTC изменяется, когда происходит переход на летнее время, но это тот часовой пояс, где наблюдаются DST, а не UTC.
Не зная о работе с часовым поясом PHP, мне кажется странным, что вы можете указать «с DST» или «без DST» в преобразовании – сами часовые пояса указывают, когда DST пинается … это не должно быть то, что вы указываете сами.
У меня такая же проблема, используя этот код:
date_default_timezone_set('UTC'); $nowdate = date('l jS \of FY h:i:s A'); echo "Current date and time is: " . $nowdate;
Сейчас лето, и время, которое этот код производит, отстает на один час – поэтому я не думаю, что время UTC в PHP настраивается на DST.
Интересно посмотреть, есть ли у кого-нибудь решение …
РЕДАКТИРОВАТЬ:
Нашел этот код на форуме, отлично работает !!
date_default_timezone_set('Europe/London'); $TIME = date("m/d/YH:i",time());
Таким образом, вы можете вызвать текущую дату и время, используя $ TIME. Выход можно настроить, чтобы отобразить его по-другому, изменив бит внутри тега date (). Если вы хотите настроить вывод date (), используйте это руководство: http://php.net/manual/en/function.time.php
Надеюсь это поможет 🙂