Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析HTTP';上次修改';PHP中的日期字符串_Php_Date_Date Formatting_Last Modified - Fatal编程技术网

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

解析HTTP';上次修改';PHP中的日期字符串,php,date,date-formatting,last-modified,Php,Date,Date Formatting,Last Modified,我正在使用FileAPI获取文件的HTTP头上次修改时间,该时间返回以下字符串: Fri Oct 25 2013 12:04:10 GMT+0100 (GMT Daylight Time) 然后将其发布到PHP,我需要将其转换为合理的内容,最好是时间戳。在建议之前,strotime()返回FALSE 似乎在任何地方都找不到任何答案。好吧,如果问题是括号内的字符串,您可以将其子串到第一个字符串,并使用@Marcell在评论中建议的strotime。幸运的是,5.3.0中有。尽管它无法解析尾随信息

我正在使用
FileAPI
获取文件的HTTP头上次修改时间,该时间返回以下字符串:

Fri Oct 25 2013 12:04:10 GMT+0100 (GMT Daylight Time)
然后将其发布到PHP,我需要将其转换为合理的内容,最好是时间戳。在建议之前,
strotime()
返回
FALSE


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

好吧,如果问题是括号内的字符串,您可以将其子串到第一个字符串,并使用@Marcell在评论中建议的
strotime

幸运的是,5.3.0中有。尽管它无法解析尾随信息,但至少可以使用
+
说明符忽略它。您不需要这些信息来创建时间戳,因为您已经有了可解析的机器,
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

echo标准时间(“2013年10月25日星期五12:04:10 GMT+0100”)=>
138269050
strotime()
能够解析此日期格式…字符串包括上述(GMT夏令时)吗?这是完整的字符串。@MarcellFülöp谢谢@hek2mgl-这解释了我看到的问题-这里的php版本是5.3.3。请将此添加为一个答案,以便我可以接受-我认为这是对遇到此问题的任何其他人最有用的解释。谢谢,尽管正则表达式在我从preg\u replace调用中删除首字母
*
之前不会匹配,但一旦您从preg\u replace调用中获得$str,您就不能使用
strotime($str)
来获取时间戳吗?我正在这样做,然后
date('Y-m-dh:I:s',$timestamp)
为mysql查询格式化日期,没有问题(到目前为止:)。此外,这个问题是否可以改写为将“格式化”替换为“解析”?格式化听起来像是将数据转换为字符串,但实际上您正试图将字符串头解析为一个值。@Neek
preg\u replace()
。检查我的更新。当我回答这个问题时,我应该更仔细地阅读文档你的题目是对的。我改变了这一点。“
strotime()
只能在PHP版本5.2.17之前解析字符串”-这是不真实的。我使用的是PHP5.6.20,我能够很好地使用它:
strotime(“周二,1994年11月15日12:45:26 GMT”)。我明白了。这是一个古老的答案,我不知道这是从哪里来的