文字列の入出力方法
文字列の入出力方法
parse および format メソッドを使うことで, 文字列と時間オブジェクトを相互変換することが出来ます. 以下に簡単な例を示します.
- $d2 = $d1->add("date", 10);
- echo $d2->format(); // "2012-06-01"
時間オブジェクトの __toString メソッドは内部で format() を呼び出します. 以下のコードはすべて同じ文字列 ("2012-05-21") を出力します.
- echo $d1->format();
- echo $d1->__toString();
- echo $d1;
フォーマットオブジェクトを指定した入出力
format() の引数に任意の Peach_DT_Format オブジェクトを指定することで, 任意の形式で文字列を出力することが出来ます.
- // タイムゾーンが仮に Asia/Tokyo (UTC+9) に設定されているものとする
parse() の第 2 引数に Peach_DT_Format オブジェクトを指定することで, 特定の形式の文字列を解析することができます. 以下のコードの $d1, $d2, $d3 は全て等価なオブジェクト (2012-05-21T07:30:45) になります.
- // タイムゾーンが仮に Asia/Tokyo (UTC+9) に設定されているものとする
ユーザー定義のパターンで入出力したい場合
クラス Peach_DT_SimpleFormat を使うことで, ユーザー定義の日付・時刻パターンで文字列解析と書式化が出来ます. Java で例えると SimpleDateFormat と同じような役割のクラスです.
- $d->add("date", 20);
- echo $d->format($f); // "2012/06/10"
入出力時のタイムゾーンの自動変換
例えばニューヨークに設置してあるサーバーで日本向けの Web サイトを運営しているとしましょう. サーバーのタイムゾーン設定は UTC-5 (-300 分), Web サイトの時刻は UTC+9 (+540 分) で表示したいという要件も, DT_ShiftFormat を使えば簡単に実現できます.
- echo $d->format($f); // "2012/01/01 14:00:00" (UTC-5 から UTC+9 に変換)
Peach_DT_W3cDatetimeFormat や Peach_DT_HttpDateFormat など, タイムゾーンの自動変換機能を単体でサポートしているフォーマットもあります. 以下に例を挙げます.
- echo $d->format($f); // "2012-01-01T14:00+09:00"
引数に時差を指定する場合, UTC の西側のタイムゾーンが正,東側が負となります. (Javascript の Date.getTimeZoneOffset() と同じです)
- Prev: オブジェクトの生成方法
- Next: XML, HTML 出力支援モジュール Markup