0

我正在编写一个函数来将内部日期格式转换为时间戳值。但是,当我以 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”。

4

1 回答 1

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,它详细解释了每个代码。

于 2011-10-03T16:35:00.097 回答