Date クラス
Date クラスは、日付を扱うヘルパー関数を集めたものです。PHP の DateTime クラスとは異なり、
Fuel Date クラスは、i18n を完全サポートしています。また、タイムゾーンの変換にも使用出来ます。
forge($timestamp = null, $timezone = null)
forge メソッドは新しい Date オブジェクトを返します。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$timestamp |
null
|
date オブジェクトにセットするタイムスタンプ |
$timezone |
null
|
時刻をセットするタイムゾーン |
|
返り値 |
Fuel\Core\Date オブジェクト |
例 |
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 オブジェクト |
例 |
print_r(Date::time());
|
display_timezone($timezone = null)
display_timezone メソッドを使ってグローバルにタイムゾーンを設定し、
format() メソッドにそのタイムゾーンを適用することでシステムのタイムゾーンと異なった出力を生成することが可能となります。
引数を渡さない場合、現在の display_timezone が返されます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$timezone |
null
|
システムのタイムゾーンを使わずに、タイムスタンプを変換するのに使われる表示用タイムゾーン。 |
|
返り値 |
mixed, null か、引数が渡されない場合は現在の表示用タイムゾーン。 |
例 |
// 表示用のタイムゾーンに '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 オブジェクト |
例 |
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 |
任意 |
返される結果の時間単位。'second' 、'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 メソッドはパターンキーで指定されたフォーマットの日付を返します。
パターンは、設定ファイル 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(); // "GMT" を返す
echo Date::forge(1294176140, "Europe/Amsterdam")->get_timezone_abbr(); // "CET" を返す
// グローバルにタイムゾーンの表示を "Europe/Amsterdam" に設定する
Date::display_timezone('Europe/Amsterdam');
echo Date::forge(1294176140)->get_timezone_abbr(true); // これも "CET" を返す
|
set_timezone($timezone)
set_timezone メソッドは、Date オブジェクトのタイムゾーンをセットします。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$timezone |
必須 |
Date オブジェクトにセットするタイムゾーン |
|
返り値 |
string |
例 |
echo Date::forge(1294176140)->set_timezone("America/Chicago")->get_timezone(); // America/Chicago
|