嗨,我在使用 php date() 函数时遇到了一些奇怪的行为。我正在尝试一次将日期增加一周。
代码:
<?php
date_default_timezone_set('Europe/London');
echo 7*24*60*60;
echo '<br>';
echo date('d/m/Y H:i:s', 0);
echo '<br>';
echo date('d/m/Y H:i:s', 604800);
?>
这导致以下输出。
输出:
604800
01/01/1970 01:00:00
08/01/1970 01:00:00
这是您所期望的,日期增加了 7 天到第二个。但是在我达到一定的秒数后,日期功能似乎比日期少了一个小时。
代码:
<?php
date_default_timezone_set('Europe/London');
echo (1351468800 - 1350864000);
echo '<br>';
echo date('d/m/Y H:i:s', 1350864000);
echo '<br>';
echo date('d/m/Y H:i:s', 1351468800);
?>
结果如下输出
输出:
604800
22/10/2012 01:00:00
29/10/2012 00:00:00
如您所见,即使两个日期之间的差为 604800 秒,日期也已损失了一个小时。我已经在两个不同的服务器上对此进行了测试,我还使用 DateTime 对象测试了类似的代码,但结果仍然相同。我哪里错了?