我正在尝试格式化从 google plus Api 传递的日期,就像指南在 RFC 3339 格式中所说的那样:
PUBLISHED-> datetime-> The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
所以通过 php 文档我发现:
DATE_RFC3339 Same as DATE_ATOM (since PHP 5.1.3)
这两种格式都是这样的:
"Y-m-d\TH:i:sP"
实际上 Google api 的输出是这样的:
2014-01-22T10:36:00.222Z
当我尝试启动如下命令时:
$date = DateTime::createFromFormat("Y-m-d\TH:i:sP", $activity['published']); //$activity['published'] contain the date
我总是返回 FALSE
。
我认为问题出在最后一部分
.222Z
在通过一些基本方法削减它之前,我们将不胜感激任何建议......
最佳答案
您不需要为标准输入使用 DateTime::createFromFormat()
。只需使用:
$date = new DateTime('2014-01-22T10:36:00.222Z');
var_dump($date);
但是如果你还是坚持使用createFromFormat(),那就使用正确的格式,以微秒为单位:
$date = DateTime::createFromFormat('Y-m-d\TH:i:s.uP', '2014-01-22T10:36:00.222Z');
var_dump($date);
关于php - RFC 3339 如何从,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21383088/