手动添加秒数时跳过1小时

时间:2014-03-29 17:21:59

标签: php time xampp mktime

我知道这听起来很奇怪..但它正在发生......

我正在尝试使用mktime()函数来创建秒字符串:

$time = mktime(21,0,0,3,29,2014);
echo date("d-M, h:i A", $time);

然后我在其中添加21600(6小时)秒..

 $newstr = $time+21600;
 echo  echo date("d-M, h:i A", $newstr);

我期待这个输出:

29-Mar, 09:03 PM
30-Mar, 03:03 AM

但我得到了这个:

29-Mar, 09:03 PM
30-Mar, 04:03 AM      // It must be 03:03 AM

任何人都知道问题是什么......?我正在使用xampp。

2 个答案:

答案 0 :(得分:3)

您的时区设置为2014年3月30日制定夏令时的区域,因此后一个日期最终会调整为夏令时,并且比您预期的数学时间晚一个小时。

http://www.timeanddate.com/news/time/europe-starts-dst-2014.html

您可以使用e面具中包含的时区标记I和DST标记date打印您的前后日期来验证这一点。

答案 1 :(得分:0)

也许您可以尝试在代码之前添加此行

ini_set('date.timezone','UTC');