
「2015-06-02T05:53:07-07:00」みたいな日時形式を「2015年6月2日」みたいに PHP で整形して表示したい。
UNIXタイムスタンプが取得できれば date() で整形できることは知っているんだけど、そもそも「2015-06-02T05:53:07-07:00」の日時形式がわからないので、ちょっと困った。
っでググってみたら「2015-06-02T05:53:07-07:00」どうやら ISO8601 形式 というものみたい。
ちなみに良く出てくる「Mon, 01 Jun 2015 22:00:29 +0900」みたいのは RFC2822 で定義されている形式なんだとか。
ってことで ISO8601 から UNIXタイムスタンプに変換方法をググったらそのものズバリがありました。
参考:Qiita: ISO8601形式の時刻をUNIXタイムスタンプに
それによると、strtotime() の引数に ISO8601形式を渡してあげれば UNIXタイムスタンプが返ってくるとのこと。
そうすればあとは date() で整形してあげるだけ。
参考:PHP: date – Manual
ってことで、
で無事に「2015年6月2日」と整形できました。
ちなみに RFC2822 の日付も同じように strtotime() を使って、
で整形できるみたいです。
ついでに、
date('r',strtotime('2001-02-03T04:05:06+09:00')); // Sat, 03 Feb 2001 04:05:06 +0900
とすると ISO8601 から FRFC2822 に変換できるみたいです。
参考:日付と時刻をTで繋ぐ表記方法 – MEMO:はてな支店
でわでわ。