Date クラス

Date クラスは、日付を扱うヘルパー関数を集めたものです。PHP の DateTime クラスとは異なり、 Fuel Date クラスは、i18n を完全サポートしています。また、タイムゾーンの変換にも使用出来ます。

forge($timestamp = null, $timezone = null)

forge メソッドは新しい Date オブジェクトを返します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$timestamp
null
date オブジェクトにセットするタイムスタンプ
$timezone
null
時刻をセットするタイムゾーン
返り値 Fuel\Core\Date Object
print_r(Date::forge(1294176140));

// 結果
Fuel\Core\Date Object
(
    [timestamp:protected] => 1294176140
    [timezone:protected] => UTC
)

time($timezone = null)

time メソッドは、与えられたタイムゾーンの現在時刻を Date オブジェクトで返します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$timezone
null
時刻をセットするタイムゾーン
返り値 Fuel\Core\Date Object
print_r(Date::time());

display_timezone($timezone = null)

display_timezone メソッドを使ってグローバルにタイムゾーンを設定し、 format() メソッドにそのタイムゾーンを適用することでシステムのタイムゾーンと異なった出力を生成することが可能となります。 引数を渡さない場合、現在の display_timezone が返されます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$timezone
null
非システムタイムゾーンにおいて、タイムスタンプを変換するのに使われるディスプレイタイムゾーン。
返り値 mixed, null か、引数が渡されない場合は現在のディスプレイタイムゾーン。
// set the display timezone to 'America/Lima'
Date::display_timezone('America/Lima');

create_from_string($input, $pattern_key = 'local')

create_from_string は、与えられた日付文字列書式から Date オブジェクトを作成します。

この関数は、i18n のため strptime() を使用します。このメソッドは Windows ホストでは利用できないので、代わりに strtotime() を使用し、パターンを無視します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$input 必須 日付文字列
$pattern_key "local" 使用するパターン (config/date.php を参照 または直接のstrptime()パターン)
返り値 Fuel\Core\Date Object
print_r(Date::create_from_string("01/04/2011" , "us"));

// 結果
Fuel\Core\Date Object
(
    [timestamp:protected] => 1322956800
    [timezone:protected] => UTC
)

range_to_array($start, $end, $interval = '+1 Day')

range_to_array は、指定範囲の日付を date オブジェクトの配列に変換します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$start 必須 開始日付を Date オブジェクトまたはタイムスタンプで指定
$end 必須 終了日付を Date オブジェクトまたはタイムスタンプで指定
$interval "+1 Day" Date オブジェクトを作成するインターバル
返り値 array
$start = time();
$end = $start + 604800; // 1週間後
print_r(Date::range_to_array($start, $end, "+2 days"));

// 結果
Array
(
    [0] => Fuel\Core\Date Object
        (
            [timestamp:protected] => 1294181818
            [timezone:protected] => UTC
        )

    [1] => Fuel\Core\Date Object
        (
            [timestamp:protected] => 1294354618
            [timezone:protected] => UTC
        )

    [2] => Fuel\Core\Date Object
        (
            [timestamp:protected] => 1294527418
            [timezone:protected] => UTC
        )

    [3] => Fuel\Core\Date Object
        (
            [timestamp:protected] => 1294700218
            [timezone:protected] => UTC
        )
)

days_in_month($month, $year = null)

days_in_month は、指定した年月の日数を返します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$month 必須
$year
null
年 (デフォルトは現在の年)
返り値 int
echo Date::days_in_month(2);       // 28
echo Date::days_in_month(2, 2000); // 29

time_ago($timestamp, $now, $period)

time_ago メソッドは、時刻の差を返します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$timestamp 必須 UNIX タイムスタンプ
$now 任意 比較対象とするUNIX タイムスタンプ。指定されない、もしくは null の場合、現在時刻が適用される。
$period 任意 返される結果の時間単位。'econd', 'minute', 'hour', 'day', 'week', 'month', 'year', 'decade' (10年) が指定可能。なにも指定されない場合、可能な限り大きい単位で結果が返される。
返り値 string
echo Date::time_ago(strtotime("01 January 2012")); // 1 months ago (2012年2月に実行した場合)
echo Date::time_ago(strtotime("12 April 1964"), strtotime("01 March 2012")); // 5 decades ago
echo Date::time_ago(strtotime("12 April 1964"), strtotime("01 March 2012"), 'year'); // 48 years ago

format($pattern_key = 'local', $timezone = null)

format メソッドはパターンキーで指定されたフォーマットの日付を返します。 パターンは、設定ファイル fuel/core/config/date.php で定義されています。 あなたは、同じようなファイルを app/config に作成することでパターンを追加する事ができます。

このメソッドでは、i18n をサポートするため、 date() ではなく strftime() 関数のパターンを使います

タイムゾーンを渡たさない場合、出力結果をフォーマットをする際に現在の Date オブジェクトがタイムゾーンにセットされます。 既に set_timezone() メソッドによりタイムゾーンを設定し直していない限り、デフォルトではシステムのタイムゾーンが適用されます。 また、true を渡すことで、グローバルな display_timezone を適用させることもできます。

例えば、ユーザーがログインした時に設定されるユーザープロフィールから、グローバルにタイムゾーンを変換することが可能です。 これにより全ての日付がユーザーのタイムゾーンで表示されるようになります。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$pattern_key "local" パターンキー (config/date.php を参照)
$timezone null 出力結果のタイムゾーンを指定することができます
返り値 string
// システムの時間がUTCの場合、"01/04/2011 21:22" を返す
echo Date::forge(1294176140)->format("%m/%d/%Y %H:%M");

// タイムゾーンに"Europe/Amsterdam"(1月でGMT+1)をセットすると、"01/04/2011 22:22" を返す
echo Date::forge(1294176140)->set_timezone('Europe/Amsterdam')->format("%m/%d/%Y %H:%M");

// ディスプレイタイムゾーンを "Europe/Amsterdam" にグローバルに設定する
Date::display_timezone('Europe/Amsterdam');

// これも同様に "01/04/2011 22:22" を返す
echo Date::forge(1294176140)->format("%m/%d/%Y %H:%M", true);

get_timestamp()

get_timestamp メソッドは、Date オブジェクトのタイムスタンプを返します。

静的 いいえ
返り値 int
echo Date::forge(1294176140)->get_timestamp(); // 1294176140

get_timezone()

get_timezone メソッドは、Date オブジェクトのタイムゾーンを返します。

静的 いいえ
返り値 string
echo Date::forge(1294176140, "Europe/London")->get_timezone(); // Europe/London

get_timezone_abbr($display_timezone = false)

get_timezone_abbr メソッドは Date オブジェクトに設定されているタイムゾーンの略称を返します。もしくはグローバルなタイムゾーンの略称を返します。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$display_timezone boolean true の場合、Date オブジェクトにセットされたタイムゾーンの代わりにグローバルな display_timzone が使用される
返り値 string
echo Date::forge(1294176140, "Europe/London")->get_timezone_abbr(); // returns "GMT"
echo Date::forge(1294176140, "Europe/Amsterdam")->get_timezone_abbr(); // returns "CET"

// グローバルにタイムゾーンの表示を "Europe/Amsterdam" に設定する
Date::display_timezone('Europe/Amsterdam');
echo Date::forge(1294176140)->get_timezone_abbr(true); // returns "CET" too

set_timezone($timezone)

set_timezone メソッドは、Date オブジェクトのタイムゾーンをセットします。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$timezone 必須 Date オブジェクトにセットするタイムゾーン
返り値 string
echo Date::forge(1294176140)->set_timezone("America/Chicago")->get_timezone(); // America/Chicago