Overview

Namespaces

  • Peach
    • DF
    • DT
    • Http
      • Body
      • Header
    • Markup
    • Util

Classes

  • AbstractTime
  • Clock
  • Date
  • Datetime
  • DefaultClock
  • FixedClock
  • FormatWrapper
  • HttpDateFormat
  • OffsetClock
  • ShiftFormat
  • SimpleFormat
  • TimeEquator
  • Timestamp
  • TimeWrapper
  • UnixTimeFormat
  • Util
  • W3cDatetimeFormat

Interfaces

  • Format
  • Time
  • Overview
  • Namespace
  • Class

Class W3cDatetimeFormat

W3CDTF と時間オブジェクトの相互変換を行うフォーマットです. 本来の W3CDTF は日付と時刻の間に "T" が入りますが (例: "YYYY-MM-DDThh:mm:ss") このクラスは SQL などで用いられる慣用表現 (例: "YYYY-MM-DD hh:mm:ss") のパースもできます.

parse メソッドは, 文字列の先頭が W3CDTF の書式にマッチするかどうかで妥当性をチェックします. "2012-05-21T07:30:00" のような文字列は parseDate, parseDatetime, parseTimestamp のすべてのメソッドで受け付けますが, "2012-05-21" のような文字列は parseDate だけしか受け付けません.

このクラスはタイムゾーンを適切に扱うことが出来ます. parse 系メソッドでは, 時間オブジェクトに変換する際に内部のタイムゾーンに合わせて時刻を調整します. 例えばシステム時刻が UTC+9 として, GMT の時間文字列 "2012-05-20T22:30Z" を parse した場合 9 時間進ませた時間オブジェクト (new Datetime(2012, 5, 21, 7, 30) に等価) を生成します.

時間オブジェクトを書式化する際は, 出力用の時差に合わせた文字列を生成します. 例えば内部のタイムゾーンが UTC+9, 出力用のタイムゾーンが UTC+5 に設定されているものとします. この場合, 内部のタイムゾーンと出力用のタイムゾーンの時差が -4 時間となるため, new Datetime(2012, 5, 21, 7, 30) の時間オブジェクトを書式化した結果は "2012-05-21T03:30+5:00" となります.

Peach\DT\W3cDatetimeFormat implements Peach\DT\Format
Namespace: Peach\DT
Located at Peach/DT/W3cDatetimeFormat.php
Methods summary
public
# __construct( integer $externalOffset = null, integer $internalOffset = null )

指定されたタイムゾーンの条件で, 新しいフォーマットを構築します. タイムゾーンを扱わない場合は, コンストラクタの代わりに W3cDatetimeFormat::getInstance を使って下さい.

指定されたタイムゾーンの条件で, 新しいフォーマットを構築します. タイムゾーンを扱わない場合は, コンストラクタの代わりに W3cDatetimeFormat::getInstance を使って下さい.

引数 $externalOffset を指定することで, 書式化する際のタイムゾーンの値を設定することが出来ます. (デフォルトはシステム時刻のタイムゾーンとなります) さらに $internalOffset を指定することで, システム時刻のタイムゾーンとして任意の値を指定することも出来ます.

$externalOffset と $internalOffset を省略した場合, デフォルト値としてシステム時刻の設定 (Util::getTimeZoneOffset) と同じ値が指定されます. UTC+1 以上の時差を設定する場合は負の値, UTC-1 以下の時差を設定する場合は正の値を指定してください.

以下に, $externalOffset と $internalOffset の組み合わせによる動作例を示します.

// 書式・システム時刻共に UTC+9
$f1 = new W3cDatetimeFormat(-540, -540);

// 書式は GMT, システム時刻は UTC+9
$f2 = new W3cDatetimeFormat(0,    -540);

// 書式は UTC+9, システム時刻は GMT
$f3 = new W3cDatetimeFormat(-540,    0);

// 2012-05-21T07:30 の時間オブジェクトを生成
$d = new Datetime(2012, 5, 21, 7, 30);
var_dump($d->format($f1)); // "2012-05-21T07:30+09:00"
var_dump($d->format($f2)); // "2012-05-20T22:30Z"      (UTC+9 の時刻を GMT として書式化)
var_dump($d->format($f3)); // "2012-05-21T16:30+09:00" (GMT の時刻を UTC+9 として書式化)

Parameters

$externalOffset
フォーマットの時差 (単位は分, 省略した場合はシステム設定の値を使用)
$internalOffset
システム時刻の時差 (単位は分, 省略した場合はシステム設定の値を使用)
public static Peach\DT\W3cDatetimeFormat
# getInstance( )

デフォルトのインスタンスを返します. このメソッドから生成されたオブジェクトは, parse の際にタイムゾーンを一切考慮しません. また, 書式化する際にタイムゾーン文字列を付与しません.

デフォルトのインスタンスを返します. このメソッドから生成されたオブジェクトは, parse の際にタイムゾーンを一切考慮しません. また, 書式化する際にタイムゾーン文字列を付与しません.

Returns

Peach\DT\W3cDatetimeFormat
タイムゾーンに対応しないインスタンス

Codecoverageignore

public Peach\DT\Date
# parseDate( string $format )

"YYYY-MM-DD" 形式の文字列を解析します.

"YYYY-MM-DD" 形式の文字列を解析します.

Parameters

$format
解析対象の文字列

Returns

Peach\DT\Date
解析結果

See

Peach\DT\Format::parseDate()

Implementation of

Peach\DT\Format::parseDate()
public Peach\DT\Datetime
# parseDatetime( string $format )

"YYYY-MM-DDThh:mm" 形式の文字列を解析します. 文字列の末尾にタイムゾーン (+hh:mm や -hh:mm など) を含む場合は, システム時刻への変換を行います.

"YYYY-MM-DDThh:mm" 形式の文字列を解析します. 文字列の末尾にタイムゾーン (+hh:mm や -hh:mm など) を含む場合は, システム時刻への変換を行います.

Parameters

$format
解析対象の文字列

Returns

Peach\DT\Datetime
解析結果

See

Peach\DT\Format::parseDatetime()

Implementation of

Peach\DT\Format::parseDatetime()
public Peach\DT\Timestamp
# parseTimestamp( string $format )

"YYYY-MM-DDThh:mm:ss" 形式の文字列を解析します.

"YYYY-MM-DDThh:mm:ss" 形式の文字列を解析します.

Parameters

$format
解析対象の文字列

Returns

Peach\DT\Timestamp
解析結果

See

Peach\DT\Format::parseTimestamp()

Implementation of

Peach\DT\Format::parseTimestamp()
public string
# formatDate( Peach\DT\Date $d )

指定された時間オブジェクトを "YYYY-MM-DD" 形式の文字列に変換します.

指定された時間オブジェクトを "YYYY-MM-DD" 形式の文字列に変換します.

Parameters

$d
解析対象の Date オブジェクト

Returns

string
"YYYY-MM-DD" 形式の文字列

See

Peach\DT\Format::formatDate()

Implementation of

Peach\DT\Format::formatDate()
public string
# formatDatetime( Peach\DT\Datetime $d )

指定された時間オブジェクトを "YYYY-MM-DDThh:mm" 形式の文字列に変換します. このインスタンスがタイムゾーンに対応している場合, 末尾にタイムゾーン文字列も付加します.

指定された時間オブジェクトを "YYYY-MM-DDThh:mm" 形式の文字列に変換します. このインスタンスがタイムゾーンに対応している場合, 末尾にタイムゾーン文字列も付加します.

Parameters

$d
変換対象の Datetime オブジェクト

Returns

string
"YYYY-MM-DDThh:mm" 形式の文字列

See

Peach\DT\Format::formatDatetime()

Implementation of

Peach\DT\Format::formatDatetime()
public string
# formatTimestamp( Peach\DT\Timestamp $d )

指定された時間オブジェクトを "YYYY-MM-DDThh:mm:ss" 形式の文字列に変換します. このインスタンスがタイムゾーンに対応している場合, 末尾にタイムゾーン文字列も付加します.

指定された時間オブジェクトを "YYYY-MM-DDThh:mm:ss" 形式の文字列に変換します. このインスタンスがタイムゾーンに対応している場合, 末尾にタイムゾーン文字列も付加します.

Parameters

$d
変換対象の Timestamp オブジェクト

Returns

string
"YYYY-MM-DDThh:mm:ss" 形式の文字列

See

Peach\DT\Format::formatTimestamp()

Implementation of

Peach\DT\Format::formatTimestamp()
PEACH2 API documentation generated by ApiGen