Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
夏时制后显示错误时间的php_Php_Date_Dst - Fatal编程技术网

夏时制后显示错误时间的php

夏时制后显示错误时间的php,php,date,dst,Php,Date,Dst,我有一个PHP程序,让员工每天打卡上班/下班。自从夏令时以来,它显示用户比实际时间晚了一个小时打卡下班。下面是一个例子: <?php echo 'Now: '. date('h:i:s a') ."\n"; echo "Timestamp: " . date('U') . "\n"; ?> 现在是11点45分。结果显示12点45分。你知道为什么会这样吗 编辑 上面的代码不是时钟的一部分。这只是一个例子,我用它来说明它给出了错误的结果。时区对结果没有影

我有一个PHP程序,让员工每天打卡上班/下班。自从夏令时以来,它显示用户比实际时间晚了一个小时打卡下班。下面是一个例子:

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

现在是11点45分。结果显示12点45分。你知道为什么会这样吗

编辑


上面的代码不是时钟的一部分。这只是一个例子,我用它来说明它给出了错误的结果。时区对结果没有影响。如果我使用格林尼治标准时间,它仍然比应该的时间提前一个小时显示。它昨天起作用了,所以…

将默认时区设置为PHP可以识别的时区。这里是纽约:

date_default_timezone_set('America/New_York');

DST/STD时间将自动处理。

您正在将时区设置为“EST”,这是根据PHP关于时区的文档中的此列表()。你不应该使用


相反,你应该把你的时区设置在这个列表之外的一个位置()

我发现我不是唯一一个有这个问题的人
var\u dump(date\u default\u timezone\u set('EST'))显示?变量转储(日期默认时区设置('EST');显示以下结果:bool(true)我感觉您在上次编辑中删除了错误的行。您可能想摆脱
$nextWeek=time()+(7*24*60*60)因为这与代码的其余部分无关。我再次编辑。上面的代码是我正在运行的,它比应该的代码提前一个小时显示。直到昨天晚上,它才提前一个小时显示,当时我们把时钟换成了DST。时区完全不相关时区对结果没有影响