DT

クラス: Peach_DT_ShiftFormat

定義: /Peach/DT/ShiftFormat.php

Peach_DT_FormatWrapper
   |
   +-Peach_DT_ShiftFormat

システム内部の時差とフォーマットの時差を自動で調整するためのフォーマットです.

「閲覧しているユーザーのタイムゾーンに合わせて表示する時刻を調整したい」 といったケースで, 既存の Format オブジェクトを上書きする形で利用します.

サンプルとして, 日本語のサイトがニューヨークのサーバーで管理されているというシナリオを考えます. サーバー側ではタイムゾーンを America/New_York (UTC-5) として時間の管理をしているが, ブラウザに出力する際は Asia/Tokyo (UTC+9) のタイムゾーンで表示させたいとします.

  1.  // php.ini で timezone = America/New_York が設定されているものとする
  2.  
  3.  // 表示用の時刻を UTC+9 とする (-540 分のオフセットを指定する)
  4.  $f new Peach_DT_ShiftFormat(new Peach_DT_SimpleFormat("Y/m/d H:i:s")-540);
  5.  
  6.  // 日本のユーザーが入力した時刻をサーバー内部の時刻に変換する
  7.  $d Peach_DT_Timestamp::parse("2012/05/21 07:30:45"$f);
  8.  echo $d// "2012-05-20 17:30:45" (UTC+9 から UTC-5 に変換)
  9.  
  10.  // サーバで管理されている時刻を日本のユーザー向けに変換する
  11.  $d new Peach_DT_Timestamp(201211000);
  12.  echo $d->format($f)// "2012/01/01 14:00:00" (UTC-5 から UTC+9 に変換)

このクラスの parseDate と formatDate は時差の変換を行いません. オリジナルの実行結果をそのまま返します.

ちなみに Peach_DT_W3cDatetimeFormatPeach_DT_HttpDateFormat に関しては, 自身でタイムゾーンの変換機能をサポートしているため, このクラスを使う必要はありません.

メソッド

継承されたメソッド

クラス: Peach_DT_FormatWrapper

Peach_DT_FormatWrapper::__construct()
指定された Peach_DT_Format オブジェクトをラップする FormatWrapper を構築します.
Peach_DT_FormatWrapper::formatDate()
ラップ対象のオブジェクトの formatDate メソッドを実行します.
Peach_DT_FormatWrapper::formatDatetime()
ラップ対象のオブジェクトの formatDatetime メソッドを実行します.
Peach_DT_FormatWrapper::formatTimestamp()
ラップ対象のオブジェクトの formatTimestamp メソッドを実行します.
Peach_DT_FormatWrapper::getOriginal()
ラップ対象の Peach_DT_Format オブジェクトを返します.
Peach_DT_FormatWrapper::parseDate()
ラップ対象のオブジェクトの parseDate メソッドを実行します.
Peach_DT_FormatWrapper::parseDatetime()
ラップ対象のオブジェクトの parseDatetime メソッドを実行します.
Peach_DT_FormatWrapper::parseTimestamp()
ラップ対象のオブジェクトの parseTimestamp メソッドを実行します.

メソッド 詳細

constructor __construct

line 81

Peach_DT_ShiftFormat __construct(Peach_DT_Format $original, int $externalOffset, [int $internalOffset = null])

フォーマットの時差とシステム時刻の時差を指定して, 新しい ShiftFormat を構築します.

引数の単位は分です. UTC+1 以降の場合は負の値, UTC-1 以前の場合は正の値を指定してください.

Tags

  • access : public

引数

Peach_DT_Format   $original   調整対象のフォーマット
int   $externalOffset   フォーマットの時差 (単位は分)
int   $internalOffset   システム時刻の時差 (単位は分, 省略した場合はシステム設定の値を使用)

オーバーライド: Peach_DT_FormatWrapper::__construct() (指定された Peach_DT_Format オブジェクトをラップする FormatWrapper を構築します.)

formatDatetime

line 124

string formatDatetime(Peach_DT_Datetime $d)

変換対象の時間オブジェクトを表示用のタイムゾーンに変換してから, オリジナルの formatDatetime を実行します.

Tags

  • return : 変換結果
  • access : public

引数

Peach_DT_Datetime   $d   変換対象の時間オブジェクト

オーバーライド: Peach_DT_FormatWrapper::formatDatetime() (ラップ対象のオブジェクトの formatDatetime メソッドを実行します.)

formatTimestamp

line 135

string formatTimestamp(Peach_DT_Timestamp $d)

変換対象の時間オブジェクトを表示用のタイムゾーンに変換してから, オリジナルの formatTimestamp を実行します.

Tags

  • return : 変換結果
  • access : public

引数

Peach_DT_Timestamp   $d   変換対象の時間オブジェクト

オーバーライド: Peach_DT_FormatWrapper::formatTimestamp() (ラップ対象のオブジェクトの formatTimestamp メソッドを実行します.)

parseDatetime

line 93

Peach_DT_Time parseDatetime(string $format)

オリジナルの parseDatetime で得られた結果をシステム時刻に変換して返します.

Tags

  • return : 変換結果
  • access : public

引数

string   $format   解析対象の文字列

オーバーライド: Peach_DT_FormatWrapper::parseDatetime() (ラップ対象のオブジェクトの parseDatetime メソッドを実行します.)

parseTimestamp

line 103

Peach_DT_Time parseTimestamp(string $format)

オリジナルの parseTimestamp で得られた結果をシステム時刻に変換して返します.

Tags

  • return : 変換結果
  • access : public

引数

string   $format   解析対象の文字列

オーバーライド: Peach_DT_FormatWrapper::parseTimestamp() (ラップ対象のオブジェクトの parseTimestamp メソッドを実行します.)