我从 Apple 收到的日期为 2020 年 3 月 5 日上午 9:18。我相信这是,M j, Y at G:i A但他们的字符串添加了 at。
我试图这样做..
$origDate = "Mar 5, 2020 at 9:18 AM"
$date = DateTime::createFromFormat('M j, Y at G:i A', $origDate);
echo $date->format('yyyy/MM/dd HH:mm');
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误。
未捕获的错误:在布尔值上调用成员函数 format()
我怎样才能解决这个问题?
所有日期格式标识符都是单个字符 ( Y),而不是多个 ( YYYY)。此外,at需要对实际字符串 ( ) 进行转义。您需要像这样创建 DateTime 对象:
$origDate = "Mar 5, 2020 at 9:18 AM";
$date = DateTime::createFromFormat('M d, Y \a\t g:i A', $origDate);
echo $date->format('Y/m/d H:i');
Run Code Online (Sandbox Code Playgroud)
正如我在评论中提到的,您可以在https://www.php.net/manual/en/datetime.createfromformat.php看到所有格式标识符