PHP 将日期转换为 yyyy/MM/dd HH:mm

sol*_*for -1 php

我从 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()

我怎样才能解决这个问题?

ayn*_*ber 8

所有日期格式标识符都是单个字符 ( 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看到所有格式标识符