PHP mktime给出日期12 off


PHP mktime giving dates 12 off

我正在编写一个将内部日期格式转换为时间戳值的函数。但是,当我以YYYY-MM-DD HH格式打印出日期时,日期差了12小时。

下面的代码给出了错误的日期和时间。我期待的是2011-03-25 13,而我得到的却是2011-03-25 01。

 date_default_timezone_set("Europe/London");
 $epoch = mktime(13,0,0,3,25,2011);
 echo date('Y-m-d h', $epoch);

当我使用下面的代码时,我期望得到我所期望的2001-02-01 01。

 date_default_timezone_set("Europe/London");
 $epoch = mktime(1,0,0,2,1,2011);
 echo date('Y-m-d h', $epoch);

似乎12小时偏移从3月25日的第13小时开始。

知道为什么会发生这种情况,我该如何防止它发生吗?这与不同的夏令时日期有关吗?服务器时区设置为"America/los - angeles "

它工作,你只是使用错误的格式代码,采取H(24小时格式)而不是h(12小时格式):

date_default_timezone_set("Europe/London");
$epoch = mktime(13,0,0,3,25,2011);
echo date('Y-m-d H', $epoch);

阅读PHP手册,它详细解释了每个代码