我有一个PHP程序,可以让员工每天进出。由于夏令时,它向用户显示的时间比实际上晚一个小时进出。这是一个例子:
<?php
echo 'Now: '. date('h:i:s a') ."\n";
echo "Timestamp: " . date('U') . "\n";
?>
现在是11:45。它的结果显示为12:45。任何想法为什么会发生这种情况?
修改
上面的代码不是时钟的一部分。这只是我用来表明它给出错误结果的一个例子。时区与结果无关。如果我使用GMT,它仍然比它应该提前一小时。它昨天工作了,所以......
答案 0 :(得分:2)
将默认时区设置为PHP识别的时区。这是纽约:
date_default_timezone_set('America/New_York');
DST / STD时间将自动处理。
答案 1 :(得分:1)
您将时区设置为“EST”,根据PHP文档中有关时区(http://php.net/manual/en/timezones.others.php)的列表。你不应该使用。
相反,您应该将时区设置为此列表之外的位置(http://php.net/manual/en/timezones.php)