インタフェース: Peach_DT_Time
定義: /Peach/DT/Time.php
Peach_Util_Comparable | +-Peach_DT_Time
ある特定の日付または時刻を表すインタフェースです.
このインタフェースを実装したオブジェクトのことを「時間オブジェクト」と呼びます. 時間オブジェクトには以下の 3 種類の型があります.
- DATE : 年・月・日のフィールドを持ちます
- DATETIME : 年・月・日・時・分のフィールドを持ちます
- TIMESTAMP : 年・月・日・時・分・秒のフィールドを持ちます
とある時間オブジェクトについて, そのオブジェクトの型が何かを調べるには getType() メソッドを使用してください.
時間オブジェクトを操作するための各種メソッド (get, add, set, setAll など) は文字列型の引数を指定して呼び出す仕様となっていますが, 具体的には "year", "month", "date", "hour", "minute", "second" などの値を指定してください. (大文字・小文字を問いません)
具体的には以下の仕様となっています.
- 先頭が "Y" : 年
- 先頭が "MO" : 月
- 先頭が "D" : 日
- 先頭が "H" : 時
- 先頭が "M" で始まり, 直後に "O" が続かない場合 : 分
- 先頭が "S" : 秒
このクラスはイミュータブルであるため, 各種フィールド操作メソッド (add, set, setAll) は新しい時間オブジェクトを返すことに注意してください.
このクラスは Peach_Util_Comparable を実装しているため, Peach_Util_Arrays::sort() でソートすることが出来ます.
クラス定数 詳細
FRIDAY = 5
line 109
金曜日をあらわす定数です
MONDAY = 1
line 85
月曜日をあらわす定数です
SATURDAY = 6
line 115
土曜日をあらわす定数です
SUNDAY = 0
line 79
日曜日をあらわす定数です.
THURSDAY = 4
line 103
木曜日をあらわす定数です
TUESDAY = 2
line 91
火曜日をあらわす定数です
TYPE_DATE = 129
line 63
このオブジェクトが年・月・日のフィールドをサポートしていることを示します.
TYPE_DATETIME = 130
line 68
このオブジェクトが年・月・日・時・分のフィールドをサポートしていることを示します.
TYPE_TIMESTAMP = 131
line 73
このオブジェクトが年・月・日・時・分・秒のフィールドをサポートしていることを示します.
WEDNESDAY = 3
line 97
水曜日をあらわす定数です
メソッド 詳細
add
line 164
Peach_DT_Time add(string $field, int $amount)
引数のフィールドを, $amount だけ増加 (負の場合は減少) させます.
after
line 210
boolean after(Peach_DT_Time $time)
指定された時間とこの時間を比較します.
もしもこのオブジェクトが持つ時間フィールドすべてが 引数のオブジェクトの時間フィールドと一致した場合, より多くの時間フィールドを持つほうが「後」となります.
例: 2012-05-21 (Peach_DT_Date) < 2012-05-21T00:00 (Peach_DT_Datetime) < 2012-05-21T00:00:00 (Peach_DT_Timestamp)
before
line 196
boolean before(Peach_DT_Time $time)
指定された時間とこの時間を比較します.
もしもこのオブジェクトが持つ時間フィールドすべてが 引数のオブジェクトの時間フィールドと一致した場合, より多くの時間フィールドを持つほうが「後」となります.
例: 2012-05-21 (Peach_DT_Date) < 2012-05-21T00:00 (Peach_DT_Datetime) < 2012-05-21T00:00:00 (Peach_DT_Timestamp)
equals
line 182
boolean equals(mixed $obj)
指定されたオブジェクトとこのオブジェクトを比較します.
二つのオブジェクトが等しいと判断された場合に TRUE を返します.
format
line 173
string format([Peach_DT_Format $format = null])
指定されたフォーマットを使ってこの時間オブジェクトを書式化します.
フォーマットを指定しない場合はデフォルトの方法 (SQL などで使われる慣用表現) で書式化を行ないます.
formatTime
line 295
string formatTime()
この時間の時刻 (時・分・秒) 部分を書式化します.
返される文字列はタイプによって以下の通りとなります.
- DATE : 空文字列
- DATETIME : "hh:mm"
- TIMESTAMP : "hh:mm:ss"
get
line 136
int get(string $field)
指定されたフィールドの値を取得します.
getDateCount
line 244
int getDateCount()
この月の日数を返します.
getDay
line 238
int getDay()
この日付の曜日を返します. 返される値は 0 から 6 までの整数で, 0 が日曜, 6 が土曜をあらわします.
それぞれの整数は, このクラスで定義されている各定数に対応しています.
getType
line 129
int getType()
このオブジェクトの型を返します.
返り値の数値は, 上位の (より多くのフィールドをサポートしている) 型ほど大きくなります. そのため, 2 つの時間オブジェクトの getType の返り値を比較することにより, どちらのオブジェクトのほうがサポートしているフィールドが多いか調べることができます.
isLeapYear
line 222
bool isLeapYear()
この年がうるう年かどうかを判定します.
うるう年の判別ルールは以下の通りです.
- 4 で割り切れるはうるう年である
- ただし 100 で割り切れる年はうるう年ではない
- ただし 400 で割り切れる年はうるう年である
set
line 145
Peach_DT_Time set(string $field, int $value)
この時間オブジェクトの指定されたフィールドを上書きします.
setAll
line 156
Peach_DT_Time setAll(Peach_Util_Map|array $subject)
この時間オブジェクトの複数のフィールドを一度に上書きします.
引数には,
- array("year" => 2010, "month" => 8, "date" => 31)
などの配列か, または同様の Map オブジェクトを指定してください.
toDate
line 257
Peach_DT_Time toDate()
このオブジェクトを DATE 型にキャストします.
このメソッドの返り値は以下の性質を持ちます.
- 年・月・日のフィールドをサポートします.
- getType() を実行した場合 Peach_DT_Time::TYPE_DATE を返します.
デフォルトの実装では Peach_DT_Date 型にキャストします.
toDatetime
line 270
Peach_DT_Time toDatetime()
このオブジェクトを DATETIME 型にキャストします.
このメソッドの返り値は以下の性質を持ちます.
- 年・月・日・時・分のフィールドをサポートします.
- getType() を実行した場合 Peach_DT_Time::TYPE_DATETIME を返します.
デフォルトの実装では Peach_DT_Datetime オブジェクトを返します.
toTimestamp
line 283
Peach_DT_Time toTimestamp()
このオブジェクトを TIMESTAMP 型にキャストします.
このメソッドの返り値は以下の性質を持ちます.
- 年・月・日・時・分・秒のフィールドをサポートします.
- getType() を実行した場合 Peach_DT_Time::TYPE_TIMESTAMP を返します.
デフォルトの実装では Peach_DT_Timestamp オブジェクトを返します.