解析HTTP';上次修改';PHP中的日期字符串


Parsing HTTP 'Last-Modified' Date string in PHP

我使用FileAPI获取文件的HTTP标头Last Modified time,它返回以下字符串:

Fri Oct 25 2013 12:04:10 GMT+0100 (GMT Daylight Time)

然后将其发布到PHP,我需要将其转换为合理的内容,最好是时间戳。在建议之前,strtotime()返回FALSE

似乎在任何地方都找不到任何答案。

幸运的是,从5.3.0开始就有了DateTime::createFromFormat()。尽管它不能解析尾部信息,但至少可以使用+说明符忽略它。您不需要这些信息来创建时间戳,因为您已经有了机器可解析的GMT+0100

示例:

$str = "Fri Oct 25 2013 12:04:10 GMT+0100 (GMT Daylight Time)";
$fmt = 'D M d Y H:i:s O+';
$datetime = DateTime::createFromFormat($fmt, $str);
echo $datetime->getTimestamp();

输出:

1382699050

好吧,如果问题是括号内的字符串,您可以将其作为第一个字符串的子字符串,并像@Marcel在评论中建议的那样使用strtotime