我有以下代码:
$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小时的时间格式显示日期,以及如何解决这个问题?
答案 0 :(得分:0)
除非您指定时区date_create
否则为当前时区。如果您没有定义一个,那么它将使用UTC。
由于在date_create
日期存储为UTC之后指定了时区。
自2014-11-06 23:00 UTC与2014-11-07 10:00 UTC + 11(澳大利亚/维多利亚)同时,当您回复时,您会看到后者。约会。