У меня есть PHP-программа, которая позволяет сотрудникам ежедневно входить / выходить. Начиная с перехода на летнее время, он показывает, что пользователи работают часами позже, чем они на самом деле. вот пример:
<?php
echo 'Now: '. date('h:i:s a') ."\n";
echo "Timestamp: " . date('U') . "\n";
?>
сейчас 11:45. это показывает 12:45 в результате. есть идеи, почему это будет происходить?
РЕДАКТИРОВАТЬ
Код выше не является частью таймера. Это просто пример, который я использую, чтобы показать, что он дает неверные результаты. Часовой пояс не имеет никакого отношения к результату. Если я использую время по Гринвичу, оно все равно показывает на час раньше, чем должно быть. и это сработало вчера, так что …
Установите часовой пояс по умолчанию на то, что распознает PHP. вот NY:
date_default_timezone_set('America/New_York');
Время DST / STD будет обрабатываться автоматически.
Вы устанавливаете свой часовой пояс на «EST», что в соответствии с этим списком в документации PHP о часовых поясах (http://php.net/manual/en/timezones.others.php). Вы не должны использовать.
Скорее вы должны установить свой часовой пояс на местоположение вне этого списка (http://php.net/manual/en/timezones.php)