我遇到了DateTime::createFromFormat()的一些奇怪问题
我有一个输入日期
2014 年 5 月 9 日星期五 11:00:00 GMT 0200
现在,当我在其上应用 DateTime::createFromFormat() 时,它似乎不起作用。
所以我做了什么
$d = DateTime::createFromFormat('D M m Y H:i:s T 0200', 'Fri May 09 2014 11:00:00 GMT 0200');
echo $d->format("Y-m-d H:i:s");
Run Code Online (Sandbox Code Playgroud)
上面的代码运行良好。
现在的问题是我看到值 0200 正在随着通常来自提要的不同输入值而变化。并且找不到解决这个问题的方法。
http://php.net/manual/en/datetime.createfromformat.php
在手册中它支持在末尾添加 + , * 但这会出现错误
所以
$d = DateTime::createFromFormat('D M m Y H:i:s T *', 'Fri May 09 2014 11:00:00 GMT 0200');
Array
(
[warning_count] => 0
[warnings] => Array ( )
[error_count] => 1
[errors] => Array (
[30] => Trailing data
)
)
Run Code Online (Sandbox Code Playgroud)
我正在做的工作是删除最后 4 位数字,然后使用以下形式
$d = DateTime::createFromFormat('D M m Y H:i:s T', 'Fri May 09 2014 11:00:00 GMT');
Run Code Online (Sandbox Code Playgroud)
但问题是,是否有一种正确的方法来处理这个问题,即不必替换最后 4 位数字并按原样使用输入并使用 DateTime 类来处理它?
$d = new DateTime('Fri May 09 2014 11:00:00 GMT 0200');
Run Code Online (Sandbox Code Playgroud)
还产生输出为
DateTime Object
(
[date] => 0200-05-15 11:00:00
[timezone_type] => 2
[timezone] => GMT
)
Run Code Online (Sandbox Code Playgroud)
我检查了这些帖子
并没有帮助。