PHP Datetime->返回错误序号后缀的格式

PHP Datetime->返回错误序号后缀的格式,php,datetime,Php,Datetime,我有一个UTC时间字符串,它不能很好地使用PHP的DateTime->format函数 我创建了一个新的php文件并粘贴到以下内容中: <?php $date = DateTime::createFromFormat('U', 1567209600, new DateTimeZone('Australia/Brisbane') ); die( $date->format( 'l, nS F Y' ) ); 首先,正确的日期是31,8的顺序后缀应该是“th”。这里到底发生了什么?此

我有一个UTC时间字符串,它不能很好地使用PHP的DateTime->format函数

我创建了一个新的php文件并粘贴到以下内容中:

<?php
$date = DateTime::createFromFormat('U', 1567209600, new DateTimeZone('Australia/Brisbane') );

die( $date->format( 'l, nS F Y' ) );

首先,正确的日期是31,8的顺序后缀应该是“th”。这里到底发生了什么?此文件中没有其他代码。

注意,这些代码区分大小写。N是一周中的第几天,N是第几个月。你想要的是j,它是一个月中没有前导零的日子:l,jS,F,Y

时区设置不正确

输出

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来转移到您的时区。

哦,我的天哪,我是个白痴
$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" }