我有一个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'。这到底是怎么回事?此文件中没有其他代码。
答案 0 :(得分:1)
请注意,代码区分大小写。 N
是星期几,n
是星期几。您需要j
,这是一个不带前导零的月份:l, jS F Y
答案 1 :(得分:0)
$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才能转移到您的时区。