DT

インタフェース: 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() でソートすることが出来ます.

クラス定数

メソッド

継承されたメソッド

クラス: Peach_Util_Comparable

Peach_Util_Comparable::compareTo()
このオブジェクトと引数の値を比較します.

クラス定数 詳細

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 だけ増加 (負の場合は減少) させます.

Tags

  • return : 設定後の時間オブジェクト
  • access : public

引数

string   $field   対象のフィールド
int   $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)

Tags

  • return : この時間のほうが未来である場合は TRUE, それ以外は FALSE
  • access : public

引数

Peach_DT_Time   $time   比較対象の時間

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)

Tags

  • return : この時間のほうが過去である場合は TRUE, それ以外は FALSE
  • access : public

引数

Peach_DT_Time   $time   比較対象の時間

equals

line 182

boolean equals(mixed $obj)

指定されたオブジェクトとこのオブジェクトを比較します.

二つのオブジェクトが等しいと判断された場合に TRUE を返します.

Tags

  • return : 二つのオブジェクトが等しい場合に TRUE, それ以外は FALSE
  • access : public

引数

mixed   $obj   比較対象のオブジェクト

format

line 173

string format([Peach_DT_Format $format = null])

指定されたフォーマットを使ってこの時間オブジェクトを書式化します.

フォーマットを指定しない場合はデフォルトの方法 (SQL などで使われる慣用表現) で書式化を行ないます.

Tags

  • return : このオブジェクトの書式化. 引数を指定しない場合は "YYYY-MM-DD" あるいは "YYYY-MM-DD hh:mm:ss" などの文字列
  • access : public

引数

Peach_DT_Format   $format  

formatTime

line 295

string formatTime()

この時間の時刻 (時・分・秒) 部分を書式化します.

返される文字列はタイプによって以下の通りとなります.

  • DATE : 空文字列
  • DATETIME : "hh:mm"
  • TIMESTAMP : "hh:mm:ss"

Tags

  • return : 時刻部分の文字列. このオブジェクトが時刻をサポートしない場合は空文字列.
  • access : public

get

line 136

int get(string $field)

指定されたフィールドの値を取得します.

Tags

  • return : 対象フィールドの値. ただしフィールド名が不正な場合は NULL
  • access : public

引数

string   $field   フィールド名

getDateCount

line 244

int getDateCount()

この月の日数を返します.

Tags

  • return : この月の日数. すなわち, 28 から 31 までの整数.
  • access : public

getDay

line 238

int getDay()

この日付の曜日を返します. 返される値は 0 から 6 までの整数で, 0 が日曜, 6 が土曜をあらわします.

それぞれの整数は, このクラスで定義されている各定数に対応しています.

Tags

getType

line 129

int getType()

このオブジェクトの型を返します.

返り値の数値は, 上位の (より多くのフィールドをサポートしている) 型ほど大きくなります. そのため, 2 つの時間オブジェクトの getType の返り値を比較することにより, どちらのオブジェクトのほうがサポートしているフィールドが多いか調べることができます.

Tags

isLeapYear

line 222

bool isLeapYear()

この年がうるう年かどうかを判定します.

うるう年の判別ルールは以下の通りです.

  • 4 で割り切れるはうるう年である
  • ただし 100 で割り切れる年はうるう年ではない
  • ただし 400 で割り切れる年はうるう年である

Tags

  • return : うるう年である場合に TRUE, それ以外は FALSE
  • access : public

set

line 145

Peach_DT_Time set(string $field, int $value)

この時間オブジェクトの指定されたフィールドを上書きします.

Tags

  • return : 設定後の時間オブジェクト
  • access : public

引数

string   $field   フィールド名
int   $value   設定する値

setAll

line 156

Peach_DT_Time setAll(Peach_Util_Map|array $subject)

この時間オブジェクトの複数のフィールドを一度に上書きします.

引数には,

  1. array("year" => 2010"month" => 8"date" => 31)

などの配列か, または同様の Map オブジェクトを指定してください.

Tags

  • return : 設定後の時間オブジェクト
  • access : public

引数

Peach_Util_Map|array   $subject   フィールドと値の一覧

toDate

line 257

Peach_DT_Time toDate()

このオブジェクトを DATE 型にキャストします.

このメソッドの返り値は以下の性質を持ちます.

デフォルトの実装では Peach_DT_Date 型にキャストします.

Tags

  • return : DATE 型の時間オブジェクト
  • access : public

toDatetime

line 270

Peach_DT_Time toDatetime()

このオブジェクトを DATETIME 型にキャストします.

このメソッドの返り値は以下の性質を持ちます.

デフォルトの実装では Peach_DT_Datetime オブジェクトを返します.

Tags

  • return : DATETIME 型の時間オブジェクト
  • access : public

toTimestamp

line 283

Peach_DT_Time toTimestamp()

このオブジェクトを TIMESTAMP 型にキャストします.

このメソッドの返り値は以下の性質を持ちます.

デフォルトの実装では Peach_DT_Timestamp オブジェクトを返します.

Tags

  • return : TIMESTAMP 型の時間オブジェクト
  • access : public