時間戳記是自 1970 年 1 月 1 日(00:00:00 GMT)以來的秒數。它也被稱為 Unix 時間戳記(Unix Timestamp)。
Unix時間戳記(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。Unix時間戳記不僅被使用在Unix系統、類Unix系統中,也在許多其他動作系統中被廣泛採用。這篇文章主要介紹了php UNIX時間戳記用法,結合執行個體形式分析了php Unix時間戳記相關函數與提示,具體如下:
時間戳記是檔案屬性中的建立、修改、和訪問時間。數字時間戳記服務是Web網站安全服務項目之一,能提供電子檔案的日期和時間資訊的安全保護。
時間戳記的優點是:
可用變化的加密數值,防止數值被竊取後非法重複利用,起到加密的作用。時間戳記主要依賴於時間,在約定的一段時間內產生唯一的一個數值。
UNIX時間戳記
在UNIX系統中,日期與時間表示為自1970年1月1日零點起到當前時刻的秒數,這種時間被稱為UNIX時間戳記,以32位位元表示。在不同的作業系統中均支援這種時間表示方式,同一時間在UNIX和Windows中均以相同的UNIX時間戳記表示,所以不需要在不同的系統中進行轉換。
目前UNIX時間戳記是以32位位元表示,32位位元值範圍為(-2147483648~+2147483647),由於系統不支援負的時間戳記,因此,目前UNIX時間戳記能表示的最大時間為2038年1月19日3點14分7秒,該時刻的時間戳記為2147483647。於該時間後,需要擴充UNIX時間戳記的二進位位元。
PHP擷取指定日期的時間戳記
PHP中應用mktime()函數將一個時間轉換成為UNIX時間戳記值。
文法如下
mktime(hour,minute,second,month,day,year,is_dst)
| 參數 |
描述 |
| hour |
可選。規定小時。 |
| minute |
可選。規定分鐘。 |
| second |
可選。規定秒。 |
| month |
可選。規定用數字表示的月。 |
| day |
可選。規定天。 |
| year |
可選。規定年。在某些系統上,合法值介於 1901 - 2038 之間。不過在 PHP 5 中已經不存在這個限制了。 |
| is_dst |
可選。如果時間在日光節約時間(DST)期間,則設定為1,否則設定為0,若未知,則設定為-1。 自 5.1.0 起,is_dst 參數被廢棄。因此應該使用新的時區處理特性。 |
例如:
echo "時間戳記:".mktime().'<br>';//返回目前時間戳echo "任意日期:".date("Y-m-d",mktime(0,0,0,2,21,1996)).'<br>';echo "當前日期: ".date("Y-m-d",mktime()).'<br>';
運行結果為:
時間戳記:1458979695任意日期:1996-02-21當前日期: 2016-03-26
擷取目前時間戳
PHP通過time()函數擷取當前的UNIX時間戳記。
文法如下:
int time(void);
該函數沒有參數,傳回值為UNIX時間戳記的整數值。
例如:
echo time()."<br>";//輸出目前時間戳$nextWeek = time()+(7*24*60*60);//一個星期七天,一天24小時,一個小時60分,一分60秒echo "Now: ".date("Y-m-d")."<br>";echo "Next Week: ".date("Y-m-d",$nextWeek);
運行結果為
1458980073Now: 2016-03-26Next Week: 2016-04-02