Date 类別

Date 类別是一系列與日期協作的輔助函式。與 PHP 的 DateTime 类別相反, Fuel 的 Date 类別對 i18n 有完整的支援。你也可以使用 Date 类別的時區轉換。

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
要被用於在非系统時區中格式化時間戳記的顯示時區。
回傳 混合,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 轉換一个日期範圍为一个日期物件的陣列

靜態
參数
參数 預設 描述
$start 必要 開始日期,不是一个 Date 物件就是一个時間戳記
$end 必要 結束日期,不是一个 Date 物件就是一个時間戳記
$interval "+1 Day" 要建立一个 Date 物件的時間間隔
回傳 陣列
範例
$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
要使用的年份(預設是目前年份)
回傳 整数
範例
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 時間戳記,如果沒給或为空,会使用目前時間
$period 選擇性 答案回傳的時間跨度,可能的值是 'second'、'minute'、'hour'、'day'、'week'、'month'、'year' 和 'decade'。如果沒有指定,会回傳最大的可能值
回傳 字串
範例
echo Date::time_ago(strtotime("01 January 2012")); // 1 months ago(當在 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)

format 方法回傳一个指定模式鍵的格式化日期。 模式被定義在 fuel/core/config/date.php 配置档案 - 你可以藉由在 app/config 建立一个类似的档案來添加你自己的模式。

此方法为 strftime() 函式使用模式取代 date() ,以允許 i18n。

如果你沒有傳遞一个時區,當格式化結果時,目前 Date 物件的設定時區将被使用。預設情況下, 是系统時區,除非你有藉由呼叫 set_timezone() 方法修改它。你也可以傳遞 true ,这将造成全域的 display_timezone 被使用。

你可以使用 display_timezone 以全域設定一个要轉換到的時區,例如, 當一个使用者已登入,從一个使用者个人設定。这将能让所有日期在使用者本地時區裡被顯示。

靜態
參数
參数 預設 描述
$pattern_key "local" 要使用的模式鍵(見 config/date.php)
$timezone null 當產生格式化輸出時要使用的時區
回傳 字串
範例
// 如果系统時間是 UTC,这将回傳 "01/04/2011 21:22"
echo Date::forge(1294176140)->format("%m/%d/%Y %H:%M");

// 設定時區为 "Europe/Amsterdam"(在一月是 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 物件的時間戳記

靜態
回傳 整数
範例
echo Date::forge(1294176140)->get_timestamp(); // 1294176140

get_timezone()

get_timezone 方法回傳 Date 物件的時區

靜態
回傳 字串
範例
echo Date::forge(1294176140, "Europe/London")->get_timezone(); // Europe/London

get_timezone_abbr($display_timezone = false)

get_timezone_abbr 方法回傳 Date 物件時區設定的時區縮寫,或顯示時區的時區縮寫。

靜態
參数
參数 預設 描述
$display_timezone 布林 如果为 true,全域的 display_timezone 将取代 Date 物件的時區設定
回傳 字串
範例
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 物件的時區
回傳 字串
範例
echo Date::forge(1294176140)->set_timezone("America/Chicago")->get_timezone(); // America/Chicago