PHP 将格式错误的字符串转换为日期


PHP Converting a badly formed string into a date

如何转换以下字符串:

24 May, 2012, 00:00am

格式如下:

$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001

我尝试了以下方法:

$date = date('D M j G:i:s T Y', strtotime("24 May, 2012, 00:00am"));

但我得到的只是:

Thu Jan 1 0:00:00 UTC 1970

我正在考虑爆炸字符串,然后通过 mktime() 运行它,但我想知道是否有更好的方法来做到这一点?

我会使用 DateTime 类和 createFromFormat 函数,它允许您根据您定义的格式解析日期。

在这种情况下:

$date = DateTime::createFromFormat("d M, Y, h:ia", "24 May, 2012, 00:00am");

然后,您可以使用其他 DateTime 函数来操作此操作。

请注意,您提供的日期实际上以任何标准都是不正确的:您要么表示00:00,要么表示12:00am