date — php показывает неверное время после перехода на летнее время

У меня есть PHP-программа, которая позволяет сотрудникам ежедневно входить / выходить. Начиная с перехода на летнее время, он показывает, что пользователи работают часами позже, чем они на самом деле. вот пример:

<?php
echo 'Now:       '. date('h:i:s a') ."\n";
echo "Timestamp: " . date('U') . "\n";
?>

сейчас 11:45. это показывает 12:45 в результате. есть идеи, почему это будет происходить?

РЕДАКТИРОВАТЬ

Код выше не является частью таймера. Это просто пример, который я использую, чтобы показать, что он дает неверные результаты. Часовой пояс не имеет никакого отношения к результату. Если я использую время по Гринвичу, оно все равно показывает на час раньше, чем должно быть. и это сработало вчера, так что …

2

Решение

Установите часовой пояс по умолчанию на то, что распознает PHP. вот NY:

date_default_timezone_set('America/New_York');

Время DST / STD будет обрабатываться автоматически.

2

Другие решения

Вы устанавливаете свой часовой пояс на «EST», что в соответствии с этим списком в документации PHP о часовых поясах (http://php.net/manual/en/timezones.others.php). Вы не должны использовать.

Скорее вы должны установить свой часовой пояс на местоположение вне этого списка (http://php.net/manual/en/timezones.php)

1

По вопросам рекламы [email protected]