2017-02-10 73 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

以下將輸出