2

JSON から取得した時間文字列を別の形式に変換する際に問題があります。なぜか日付がマイナス24時間になっています。これがJSONのオブジェクトです

 [date] => 2011-07-02T00:00:00+02:00

私は使用strtotime()していますdate()

date('l, d F Y', strtotime($day->date));

しかし、出力は次のようになります

FRIDAY, 01 JULY 2011

明らかに、JSON の日付は 7 月 2 日です。なぜこれが起こるのか誰にも分かりますか?私は何か重要なものを見逃していますか?どんな助けでも本当に感謝します!

4

2 に答える 2

4

DateTimeを使用する必要があると思います。ホストの TimeZone には依存しません。フォーマットの横には、有効な ISO8601 があります。したがって、DateTime はまったく問題ありません。

$dt = new DateTime("2011-07-02T00:00:00+02:00");
echo $dt->format("l, d F Y"); 

// Echos Saturday, 02 July 2011

http://ideone.com/yPp4d

于 2012-05-01T15:28:26.317 に答える
-1

PHP は、時刻/日付文字列の無限配列を認識しません。人間にとって「明白」なことは、コンピュータにとってそれほど明白ではありません。その正確な日付形式の特定のパーサーがなければ、コンピューター言語はあなたの例の目的をどのように理解Tしますか??

PHP strtotime 形式は、PHP が文字列から時間または日付オブジェクトに変換できる形式を示します。

日付/時刻が正しく解析されていても、tzcorrection+0200 は PHP に GMT + 2 時間のタイムゾーンの違いを修正するように指示しています。これはおそらく正しいタイムゾーンのオフセットではないため、エラーが発生します。

于 2012-05-01T15:29:10.320 に答える