基本的な使用方法
時間オブジェクトとは
特定の日付・時刻を指すインタフェース Peach_DT_Time の実装クラスのことを「時間オブジェクト」と呼びます. 時間オブジェクトには以下の種類があります.
- Peach_DT_Date : ある特定の日付を表現します
- Peach_DT_Datetime : ある特定の時刻 (分まで) を表現します
- Peach_DT_Timestamp : ある特定の時刻 (秒を含む) を表現します
時間操作メソッド
時間オブジェクトの各フィールドの値を得るには get メソッドを使用します.
時刻の計算方法 (特定のフィールドを足したり引いたりする) には add, set, setAll などの種類があります. これらのメソッドは新しい時間オブジェクトを返します. (既存の時間オブジェクトの内部状態は変化しません)
以下に使い方の例を挙げます.
- $d1 = $d->add("date", 15);
- echo $d1; // 2012-06-05
- $d2 = $d->add("month", -3);
- echo $d2; // 2012-02-21
- $d3 = $d->set("year", 2000);
- echo $d3; // 2000-05-21
- $d4 = $d->setAll(array("month" => 12, "date" => 24));
- echo $d4; // 2012-12-24
フィールド指定方法
各メソッドの引数には "year", "month", "date", "hour", "minute", "second" などを指定します. 具体的には以下の規則に従って解釈されます. (大文字・小文字は区別しません)
- 先頭が "Y" で始まる場合 : 年
- 先頭が "MO" で始まる場合 : 月
- 先頭が "D" で始まる場合 : 日
- 先頭が "H" で始まる場合 : 時
- 先頭が "M" で始まり, 直後に "O" が続かない場合 : 分
- 先頭が "S" で始まる場合 : 秒
無効なフィールド名を指定した場合, その指定は無視されます.
例えば, 時・分・秒のフィールドを持たない Peach_DT_Date オブジェクトに対して, 引数に "hour" を指定して add メソッドを実行した場合, 元のオブジェクトと同じオブジェクトを返します.
get の引数に無効な引数を指定した場合は NULL が返ります.
- $d3 = $d1->set("hour", 10); // 無効な設定なので何も変化しない. $d1 == $d3 となる
- $d4 = $d2->set("hour", 10); // 2012-05-21 10:30 になる
ソート・比較
時間オブジェクトの配列は, Peach_Util_Arrays::sort() を使って簡単にソートすることが出来ます. 以下に例を示します.
- $arr = array(
- );
- foreach ($arr2 as $d) {
- echo $d->format() . "\n";
- }
このコードは以下を出力します.
2012-01-01 2012-03-03 11:22:33 2012-05-03 10:20 2012-08-31 12:34:56 2012-11-23 2012-11-23 21:00
before(), after() を使って時間オブジェクト同士の比較をすることができます.
異なる型の時間オブジェクト同士も比較することができますが, もしも共通するフィールドがすべて等しい場合は, 上位の型のほうが「後」とみなされることに注意してください.
- Prev: コンセプト・特徴など
- Next: オブジェクトの生成方法