|
mktime (PHP 3, PHP 4, PHP 5) mktime -- 取得一個日期的 Unix 時間戳 說明int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
根據給出的參數返回 Unix 時間戳。時間戳是一個長整數,包括了從
Unix 紀元(January 1 1970 00:00:00 GMT)到給定時間的秒數。
參數可以從右向左省略,任何省略的參數會被設定成本地日期及時間的現用的值。
參數
- hour
小時數。
- minute
分鐘數。
- second
秒數(一分鐘之內)。
- month
月份數。
- day
天數。
- year
年份數,可以是兩位或四位數字,0-69 對應於 2000-2069,70-100
對應於 1970-2000。在如今系統中普遍把 time_t 作為一個 32
位有符號整數的情況下,year
的合法範圍是 1901 到 2038 之間,不過此限制自
PHP 5.1.0 起已被克服了。
- is_dst
本參數可以設為 1,表示正處於夏時制時間(DST),0
表示不是夏時制,或是 -1(預設值)表示不知道是否是夏時制。若果不詳,PHP
會嘗試自己搞明白。這可能產生不可預知(但並非不正確)的結果。若果
PHP 運行的系統中啟用了 DST 或是 is_dst
設為 1,某些時間是無效的。例如 DST 自 2:00 生效,則所有處於
2:00 到 3:00 之間的時間都無效,mktime()
會返回一個未定義(通常為負)的值。某些系統(例如
Solaris 8)的 DST 在午夜生效,則 DST 生效當天的 0:30
會被計算為前一天的 23:30。
注:
自 PHP 5.1.0 起,本參數已被廢棄。應該使用新的時區處理特性來替代。
返回值
mktime() 根據給出的參數返回 Unix
時間戳。若果參數非法(例如年,月,日都是零),本函數返回
FALSE(在 PHP 5.1 之前返回 -1)。
範例
例子 1. mktime() 例子
mktime()
在做日期計算和驗證方面很有用,它會自動計算超出範圍的輸入的正確值。例如下面例子中每一行都會產生字串
"Jan-01-1998"。
<?php echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997)); echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997)); echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998)); echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98)); ?>
|
|
例子 2. 下個月的最後一天
任何給定月份的最後一天都可以被表示為下個月的第 "0"
天,而不是 -1 天。下面兩個例子都會產生字串
"The last day in Feb 2000 is: 29"。
<?php $lastday = mktime(0, 0, 0, 3, 0, 2000); echo strftime("Last day in Feb 2000 is: %d", $lastday); $lastday = mktime(0, 0, 0, 4, -31, 2000); echo strftime("Last day in Feb 2000 is: %d", $lastday); ?>
|
|
注解注意 |
在 PHP 5.1.0 之前,在任何已知 Windows
版本以及一些其它系統下不支援負的時間戳。因此年份的有效範圍限制為
1970 到 2038。
|
| |