PHP date_timezone_set停止显示24小时的日期格式

时间:2014-11-07 00:12:14

标签: php datetime

我有以下代码:

$date = date_create('2014-11-06T23:00:00.000Z');
date_timezone_set($date, timezone_open('Australia/Victoria'));
echo $date ->format('Y-m-d H:i:s');

结果是:

2014-11-07 10:00:00 

然而,在PHP doco中,它说资本H是24小时的时间: http://php.net/manual/en/function.date.php H 24小时格式的一小时,前导零到00

如果我按如下方式注释中间行:

$date = date_create('2014-11-06T23:00:00.000Z');
#date_timezone_set($date, timezone_open('Australia/Victoria'));
echo $date ->format('Y-m-d H:i:s');

结果是:

2014-11-06 23:00:00 

显示24小时的时间,但日期是一天,这就是我需要设置时区的原因。

为什么设置date_timezone_set会阻止我以24小时的时间格式显示日期,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

除非您指定时区date_create否则为当前时区。如果您没有定义一个,那么它将使用UTC。

由于在date_create日期存储为UTC之后指定了时区。

自2014-11-06 23:00 UTC与2014-11-07 10:00 UTC + 11(澳大利亚/维多利亚)同时,当您回复时,您会看到后者。约会。