将字符串转换为dateTime()格式的PHP解析

3
我想在 PHP 中将以下字符串解析为 DateTime() 对象:
2017-03-03T09:06:41.187

我尝试按以下方式完成此操作:
$stateCreatedOn = DateTime::createFromFormat('Y-m-dTH:i:s.u','2017-03-03T09:06:41.187');
var_dump($stateCreatedOn); // -> Returns false

然而,解析并没有起作用,变量总是被设置为false。有人知道我的日期格式规范有什么问题吗?

非常感谢!

3个回答

7
$datetime = DateTime::createFromFormat('Y-m-d\TH:i:s+', '2017-03-03T09:06:41.187');
print_r($datetime);

输出:

DateTime Object
(
    [date] => 2017-03-03 09:06:41.000000
    [timezone_type] => 3
    [timezone] => Europe/Helsinki
)

1
谢谢,非常好用 - 缺少了转义符\。如果还需要微秒:$datetime = DateTime::createFromFormat('Y-m-d\TH:i:s.u', '2017-03-03T09:06:41.187'); - Michael

1
使用 strtotime() 函数。
echo strtotime('2017-03-03T09:06:41.187'); // result will be something like 1488517601

strtotime() 是处理日期格式化最简单的方法。 - Nilesh Daldra

0

$stateCreatedOn = DateTime::createFromFormat('Y-m-d H:i:s.u','2017-03-03 09:06:41.187'); var_dump($stateCreatedOn);

结果: object(DateTime)#1 (3) { ["date"]=> string(26) "2017-03-03 09:06:41.187000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接