DT

クラス: 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 引数に曜日文字列の一覧を指定してください. 以下に例を示します.

  1.  $format new Peach_DT_SimpleFormat("Y年n月j日(E)"array("日""月""火""水""木""金""土"));

第 2 引数を省略した場合はデフォルト値として array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") が適用されます.

パターンを繋げて記述する場合は (例: "Ymd_His" など) 必ず固定長のパターンを使用してください. 可変長 (n, j, G など) のパターンは常に最長一致でマッチングするため, 繋げて記述した際にパースに失敗する可能性があります.

このクラスは, 月の文字列表記 (例えば "Jan", "Feb" など) のためのパターンをサポートしません. そのようなフォーマットが必要となった場合は, 独自の Peach_DT_Format クラスを定義する必要があります.

パースまたは書式化を行う際, 情報が足りない場合はデフォルト値が指定されます. 年・月・日については現在の日付, 時・分・秒については 0 が適用されます. 具体的には, 以下のような状況が相当します.

  1. パースする際, オブジェクトを構成するために必要な情報をパターン文字列が網羅していなかった. (例: "m/d" というパターンをパースした場合, 「年」の情報がパターン文字列に含まれていないため, 現在の年が適用されます)
  2. 時間オブジェクトを書式化する際に, パターン文字列に含まれるフィールドを そのオブジェクトが持っていなかった. (例: "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 を初期化します.

Tags

  • access : public

引数

string   $pattern   パターン文字列
array   $dayList   曜日文字列の配列. デフォルトは array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")

formatDate

line 210

string formatDate(Peach_DT_Date $d)

指定された Peach_DT_Date オブジェクトを書式化します.

Tags

  • return : このフォーマットによる文字列表現
  • access : public

引数

Peach_DT_Date   $d   書式化対象の時間オブジェクト

定義

Peach_DT_Format::formatDate()
指定された Peach_DT_Date オブジェクトを書式化します.

formatDatetime

line 220

string formatDatetime(Peach_DT_Datetime $d)

指定された Peach_DT_Datetime オブジェクトを書式化します.

Tags

  • return : このフォーマットによる文字列表現
  • access : public

引数

Peach_DT_Datetime   $d   書式化対象の時間オブジェクト

定義

Peach_DT_Format::formatDatetime()
指定された Peach_DT_Datetime オブジェクトを書式化します.

formatTimestamp

line 230

string formatTimestamp(Peach_DT_Timestamp $d)

指定された Peach_DT_Timestamp オブジェクトを書式化します.

Tags

  • return : このフォーマットによる文字列表現
  • access : public

引数

Peach_DT_Timestamp   $d   書式化対象の時間オブジェクト

定義

Peach_DT_Format::formatTimestamp()
指定された Peach_DT_Timestamp オブジェクトを書式化します.

getFormat

line 167

string getFormat()

このオブジェクトのパターン文字列を返します.

Tags

  • return : パターン文字列
  • access : public

parseDate

line 177

Peach_DT_Date parseDate(string $format)

指定された文字列を解析し, Peach_DT_Date に変換します.

Tags

  • return : 解析結果
  • access : public

引数

string   $format   解析対象の文字列

定義

Peach_DT_Format::parseDate()
指定された文字列を解析して DATE 型の時間オブジェクトに変換します.

parseDatetime

line 188

Peach_DT_Datetime parseDatetime(string $format)

指定された文字列を解析し, Peach_DT_Datetime に変換します.

Tags

  • return : 解析結果
  • access : public

引数

string   $format   解析対象の文字列

定義

Peach_DT_Format::parseDatetime()
指定された文字列を解析して DATETIME 型の時間オブジェクトに変換します.

parseTimestamp

line 199

Peach_DT_Date parseTimestamp(string $format)

指定された文字列を解析し, Peach_DT_Timestamp に変換します.

Tags

  • return : 解析結果
  • access : public

引数

string   $format   解析対象の文字列

定義

Peach_DT_Format::parseTimestamp()
指定された文字列を解析して TIMESTAMP 型の時間オブジェクトに変換します.