我有一个UTC时间字符串,它不能很好地与PHP的DateTime->format
函数配合使用。
我创建一个新的 php 文件并粘贴以下内容:
<?php
$date = DateTime::createFromFormat('U', 1567209600, new DateTimeZone('Australia/Brisbane') );
die( $date->format( 'l, nS F Y' ) );
我得到:
Saturday, 8st August 2019
对于初学者来说,正确的日期是 31,8 的序号后缀应该是"th"。这到底是怎么回事?此文件中没有其他代码。
请注意,代码区分大小写。N
是一周中的序数日期,n
是序数月份。你想要j
,这是没有前导零的月份中的某一天:l, jS F Y
$date = DateTime::createFromFormat('U', 1567209600, new DateTimeZone('Australia/Brisbane') );
var_dump($date);
时区设置不正确。
输出
object(DateTime)#2 (3) { ["date"]=> string(26) "2019-08-31 00:00:00.000000" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+00:00" }
如果日期是根据时间戳创建的,则时区始终为 UTC。您必须在创建后使用 setTimeZone 才能传输到您的时区。