2017-02-10 35 views
1

私はtwitch apiでv5から取得したDateTime形式:2016-04-06T15:17:42.97074Zを持っています。PHP不明な日付時刻形式

これをPHPを使った比較のためにunixタイムスタンプに変える必要があります。

これは現在、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

も参照してください。
関連する問題