Date クラス

Date クラスは、日付を扱うヘルバー関数を集めたものです。PHP の DateTime クラスとは異なり、 Fuel Date クラスは、i18n を完全サポートしています。You can also use the Date class for timezone conversions.

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

forge メソッドは new date オブジェクトを返します。

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

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

time($timezone = null)

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

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

display_timezone($timezone = null)

The display_timezone method allows you to globally set a timezone which can be used by the format() method to generate output in another timezone then the system timezone. If you don't pass a parameter, the current display_timezone is returned.

Static Yes
パラメータ
パラメータ 規定値 説明
$timezone
null
The display timezone to be used to format timestamps in a non-system timezone.
返り値 mixed, null, or the current display timezone if no parameter is passed.
// 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() を使用し、パターンを無視します。

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

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

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

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

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

// Returns
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 は、指定した年月の日数を返す。

Static はい
パラメータ
パラメータ 規定値 説明
$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 メソッドは、時刻の差を返します。

Static はい
パラメータ
パラメータ 規定値 説明
$timestamp 必須 UNIX タイムスタンプ
$now Optional The UNIX timestamp to compare against. If not given or null, use the current time
$period Optional The timespan the answer is returned in. Possible values are 'second', 'minute', 'hour', 'day', 'week', 'month', 'year' and 'decade'. if none is specified, the largest possible is returned
返り値 string
echo Date::time_ago(strtotime("01 January 2012")); // 1 months ago (when in February 2012)
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)

formatted メソッドはパターンキーで指定した書式の日付を返します。 The patterns are defined in the fuel/core/config/date.php config file - you can add your own by creating a similar file in app/config.

This method uses patterns for the strftime() function instead of date() to allow for i18n.

If you don't pass a timezone, the timezone set on the current Date object will be used when formatting the result. By default, this is the system timezone, unless you have altered it by calling the set_timezone() method. You can also pass true which will cause the global display_timezone to be used.

You can use the display_timezone to globally set a timezone to convert to, for example from a user profile setting when a user is logged in. This will allow all dates to be displayed in the users local timezone.

Static いいえ
パラメータ
パラメータ 規定値 説明
$pattern_key "local" パターンキー(config/date.php を参照)
$timezone null The timezone to use when generating the formatted output
返り値 string
// if the system time is UTC, this will return "01/04/2011 21:22"
echo Date::forge(1294176140)->format("%m/%d/%Y %H:%M");

// set the timezone to "Europe/Amsterdam" (which is GMT+1 in January), this will return "01/04/2011 22:22"
echo Date::forge(1294176140)->set_timezone('Europe/Amsterdam')->format("%m/%d/%Y %H:%M");

// set the display timezone globally to "Europe/Amsterdam"
Date::display_timezone('Europe/Amsterdam');

// this will return "01/04/2011 22:22" too
echo Date::forge(1294176140)->format("%m/%d/%Y %H:%M", true);

get_timestamp()

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

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

get_timezone()

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

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

get_timezone_abbr($display_timezone = false)

The get_timezone_abbr method returns the abbreviated timezone for either the timezone set in the Date object, or for the display timezone.

Static No
パラメータ
パラメータ 規定値 説明
$display_timezone boolean if true, the global display_timezone is used instead of the timezone set on the Date object
返り値 string
echo Date::forge(1294176140, "Europe/London")->get_timezone_abbr(); // returns "GMT"
echo Date::forge(1294176140, "Europe/Amsterdam")->get_timezone_abbr(); // returns "CET"

// set the display timezone globally to "Europe/Amsterdam"
Date::display_timezone('Europe/Amsterdam');
echo Date::forge(1294176140)->get_timezone_abbr(true); // returns "CET" too

set_timezone($timezone)

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

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