Я пытаюсь написать сценарий, в котором я хочу преобразовать любой часовой пояс в UTC
обратный. Но откуда-то я узнал, что при преобразовании любого часового пояса в UTC
с учетом или без учета летнего времени он даст то же самое.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 ..........
Это corect ?? Если да, то почему ??? Пожалуйста, дайте мне свои ответы.
Ответы:
Нет, в самом UTC никогда не было летнего времени. Это постоянная система отсчета, относительно которой выражаются другие часовые пояса.
Со страницы Википедии в формате UTC :
Другими словами, когда часовой пояс наблюдает за летним поясом, его смещение от всемирного координированного времени изменяется при переходе на летнее время, но именно этот часовой пояс наблюдает летнее время, а не всемирное координированное время.
Не зная много об обработке часовых поясов PHP, мне кажется странным, что вы можете указать «с DST» или «без DST» в преобразовании - сами часовые пояса определяют, когда срабатывает DST ... это не должно быть то, что вы указываете сами.
источник
date_sunrise
функцией, которая сообщает вам, когда восходит солнце. Я не уверен, требуется ли DST для преобразования, но это первоклассный гражданин объекта даты: php.net/manual/en/function.date.php .У меня такая же проблема, используя этот код:
date_default_timezone_set('UTC'); $nowdate = date('l jS \of F Y h:i:s A'); echo "Current date and time is: " . $nowdate;
Сейчас лето, и время, которое производит этот код, отстает на час, поэтому я не думаю, что время UTC в PHP подстраивается под летнее время.
Интересно посмотреть, есть ли у кого-нибудь решение ...
РЕДАКТИРОВАТЬ:
Нашел этот код на форуме, работает отлично !!
date_default_timezone_set('Europe/London'); $TIME = date("m/d/Y H:i",time());
Таким образом, вы можете затем вызвать текущую дату и время, используя $ TIME. Вывод можно настроить так, чтобы отображать его по-другому, изменив бит внутри тега date (). Если вы хотите настроить вывод date (), используйте это руководство: http://php.net/manual/en/function.time.php
Надеюсь это поможет :)
источник