クラス: Peach_DT_SimpleFormat
定義: /Peach/DT/SimpleFormat.php
Java の SimpleDateFormat と同じような使い勝手で, ユーザー定義の書式を扱うことができるクラスです.
日付・時刻のパターンは date() の一部を採用しています.
- Y: 年 (4桁固定)
- m: 月 (2桁固定)
- n: 月 (1~2桁)
- d: 日 (2桁固定)
- j: 日 (1~2桁)
- H: 時 (2桁固定)
- G: 時 (1~2桁)
- i: 分 (2桁固定)
- s: 秒 (2桁固定)
以下は, このクラス独自の拡張パターンです.
- f: 分 (1~2桁)
- b: 秒 (1~2桁)
- E: 曜日 (後述)
"2012年5月21日(月)" のように曜日を含む書式の入出力を行う場合は, コンストラクタの第 2 引数に曜日文字列の一覧を指定してください. 以下に例を示します.
第 2 引数を省略した場合はデフォルト値として array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") が適用されます.
パターンを繋げて記述する場合は (例: "Ymd_His" など) 必ず固定長のパターンを使用してください. 可変長 (n, j, G など) のパターンは常に最長一致でマッチングするため, 繋げて記述した際にパースに失敗する可能性があります.
このクラスは, 月の文字列表記 (例えば "Jan", "Feb" など) のためのパターンをサポートしません. そのようなフォーマットが必要となった場合は, 独自の Peach_DT_Format クラスを定義する必要があります.
パースまたは書式化を行う際, 情報が足りない場合はデフォルト値が指定されます. 年・月・日については現在の日付, 時・分・秒については 0 が適用されます. 具体的には, 以下のような状況が相当します.
- パースする際, オブジェクトを構成するために必要な情報をパターン文字列が網羅していなかった. (例: "m/d" というパターンをパースした場合, 「年」の情報がパターン文字列に含まれていないため, 現在の年が適用されます)
- 時間オブジェクトを書式化する際に, パターン文字列に含まれるフィールドを そのオブジェクトが持っていなかった. (例: "Y/m/d H:i:s" というパターンで Peach_DT_Date オブジェクトを書式化した場合, Peach_DT_Date は時刻の情報を持たないため, 時刻部分は 00:00:00 となります.)
PHP の date() 関数の実装と同様に, バックスラッシュをつけることでパターン文字列が展開されるのを抑制することができます.
このクラスはイミュータブルです. 一つのオブジェクトを複数の箇所で使いまわすことが出来ます.
メソッド 詳細
constructor __construct
line 118
Peach_DT_SimpleFormat __construct(string $pattern, [array $dayList = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")])
指定されたパターン文字列で SimpleFormat を初期化します.
formatDate
line 210
string formatDate(Peach_DT_Date $d)
指定された Peach_DT_Date オブジェクトを書式化します.
formatDatetime
line 220
string formatDatetime(Peach_DT_Datetime $d)
指定された Peach_DT_Datetime オブジェクトを書式化します.
formatTimestamp
line 230
string formatTimestamp(Peach_DT_Timestamp $d)
指定された Peach_DT_Timestamp オブジェクトを書式化します.
getFormat
line 167
string getFormat()
このオブジェクトのパターン文字列を返します.
parseDate
line 177
Peach_DT_Date parseDate(string $format)
指定された文字列を解析し, Peach_DT_Date に変換します.
parseDatetime
line 188
Peach_DT_Datetime parseDatetime(string $format)
指定された文字列を解析し, Peach_DT_Datetime に変換します.
parseTimestamp
line 199
Peach_DT_Date parseTimestamp(string $format)
指定された文字列を解析し, Peach_DT_Timestamp に変換します.