2017-02-10 120 views
1

我有DateTime格式:2016-04-06T15:17:42.97074Z,我从v5在twitch api上获得。PHP未知日期时间格式

我需要把它变成unix时间戳,以便使用PHP进行比较。

这是目前我如何尝试转换成DateTime对象:$dateTime = DateTime::createFromFormat(DateTime::ISO8601, $json["created_at"]);,我也尝试使用DateTime::W3C但无济于事。

$json["created_at"]绝对包含时间转换为echo $json["created_at"]返回时间。

回答

0

createFromFormat在要求解析ISO8601时拒绝小数秒,但您可以简单地使用该字符串成功构造DateTime,例如,

$str='2016-04-06T15:17:42.97074Z'; 
//this will work... 
$dt1=new \DateTime($str); 
//but this won't... 
$dt2=\DateTime::createFromFormat(\DateTime::ATOM, $str); 

var_dump($dt1); 
var_dump($dt2); 

这也php 5.6.0 - 5.6.30, hhvm-3.15.4 - 3.17.1, 7.0.0 - 7.1.1

object(DateTime)#1 (3) { 
    ["date"]=> 
    string(26) "2016-04-06 15:17:42.970740" 
    ["timezone_type"]=> 
    int(2) 
    ["timezone"]=> 
    string(1) "Z" 
} 
bool(false) 

PHP DateTime::createFromFormat doesn't parse ISO 8601 date time

以下将输出