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

Php 手动添加秒数时跳过1小时,php,time,xampp,mktime,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

我知道这会让你听起来很奇怪。。但它正在发生

我正在尝试使用
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。

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

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

您的时区设置为2014年3月30日实行夏令时的地区,因此后一个日期最终被调整为DST,比您在数学上预期的晚一小时


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

。仅供参考,这是一个糟糕的约会数学方法。改用DateTime,这是完全可能的。。如何解决它?
h:m
你的意思是
h:i
?(分钟,不是月数)@MarkBaker我编辑了它。。我的问题是另一个。。我怎样才能解决这个问题。。我很担心……事实上,问题在于工作时间。