我正在编写一个函数将内部日期格式转换为时间戳值。但是,当我以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”。
答案 0 :(得分:1)
可行,你只是使用了错误的格式代码,采用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 Manual,它会详细解释每个代码。