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 ShiftFormat

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

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

// php.ini で timezone = America/New_York が設定されているものとする

// 表示用の時刻を UTC+9 とする (-540 分のオフセットを指定する)
$f = new ShiftFormat(new SimpleFormat("Y/m/d H:i:s"), -540);

// 日本のユーザーが入力した時刻をサーバー内部の時刻に変換する
$d = Timestamp::parse("2012/05/21 07:30:45", $f);
echo $d; // "2012-05-20 17:30:45" (UTC+9 から UTC-5 に変換)

// サーバで管理されている時刻を日本のユーザー向けに変換する
$d = new Timestamp(2012, 1, 1, 0, 0, 0);
echo $d->format($f); // "2012/01/01 14:00:00" (UTC-5 から UTC+9 に変換)

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

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

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

フォーマットの時差とシステム時刻の時差を指定して, 新しい ShiftFormat を構築します. 引数の単位は分です. UTC+1 以降の場合は負の値, UTC-1 以前の場合は正の値を指定してください.

フォーマットの時差とシステム時刻の時差を指定して, 新しい ShiftFormat を構築します. 引数の単位は分です. UTC+1 以降の場合は負の値, UTC-1 以前の場合は正の値を指定してください.

Parameters

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

Overrides

Peach\DT\FormatWrapper::__construct()
public Peach\DT\Time
# parseDatetime( string $format )

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

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

Parameters

$format
解析対象の文字列

Returns

Peach\DT\Time
変換結果

Overrides

Peach\DT\FormatWrapper::parseDatetime()
public Peach\DT\Time
# parseTimestamp( string $format )

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

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

Parameters

$format
解析対象の文字列

Returns

Peach\DT\Time
変換結果

Overrides

Peach\DT\FormatWrapper::parseTimestamp()
public string
# formatDatetime( Peach\DT\Datetime $d )

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

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

Parameters

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

Returns

string
変換結果

Overrides

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

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

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

Parameters

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

Returns

string
変換結果

Overrides

Peach\DT\FormatWrapper::formatTimestamp()
Methods inherited from Peach\DT\FormatWrapper
formatDate(), getOriginal(), parseDate()
PEACH2 API documentation generated by ApiGen