我目前正在使用ConstantContact,它返回格式如下的更新字段的XML:
2013-02-13T08:35:34.195Z
我假设这是 date('c') 格式。如何解析此格式?strtotime没有返回正确的值。
您可能想要查看DateTime::createFromFormat()函数。
$datetime = DateTime::createFromFormat('Y-m-d\TH:i:s+', '2013-02-13T08:35:34.195Z');
问题在于你会失去毫秒。
格式字符串中的 +
符号只是告诉该函数忽略字符串的其余部分,而不是创建错误。
在 PHP7.2 中确认。如下面的评论所述,您可以使用 Y-m-d\TH:i:s.u\Z
来匹配与 toISOString 给出的 Js 字符串完全相同的字符串。
createFromFormat()
中使用 'DateTime::ISO8601'
或 'c'
而不是 'Y-m-d\TH:i:s+'
也可以起到同样的作用... - grimDateTime::createFromFormat('Y-m-d\TH:i:s+', $isotime, new DateTimeZone('Etc/Zulu'));
- Florian Fida'c'
不起作用。 - GlutexoY-m-d\TH:i:s.v\Z
。 - dewwwaldY-m-d\TH:i:s.u\Z
,它可以双向工作。 - dewwwald
date('c', strtotime($date));
- AmazingDreams