PHP 時間戳
UNIX 時間戳(timestamp)是 PHP 中關於時間日期一個很重要的概念,它表示從 1970年1月1日 00:00:00 到當前時間的秒數之和。
PHP提供了內置函數 time() 來取得服務器當前時間的時間戳。
例子:
<?php echo time(); ?>
上面的例子運行后得到的是一串類似這樣的數字:1279115455
我們可以通過 date() 等函數將它格式化為我們需要的時間日期格式。
有效的時間戳典型范圍是格林威治時間 1901年12月13日 20:45:54 到 2038年1月19日 03:14:07(此范圍符合 32 位有符號整數的最小值和最大值)。不過從 5.1.0 起,已經克服了年的范圍只能是 1901 到 2038 之間的問題。
提示
- time() 得到的總是當前的時間戳,所以是不固定的值
- 如果時間戳為負數,則為從1970年1月1日 00:00:00往前推
時間差
時間戳雖然看起來好像不太直觀,但我們在對時間做計算時卻很方便。例如我們要計算時間差,或者對兩個時間做比較等,直接比較數字即可而不必分別去考慮年月日時分秒的換算。而且在效率上時間戳作為整型數據也會快得多。
要求用戶在登陸網站一定時間后失效而需要重新登錄的例子:
<?php $expiration = $time()+2*3600; //得到當前時間延遲2小時候的時間戳 //失效驗證代碼略 ?>
那么只需要用戶在活動期間將當前時間戳與 $expiration 進行比較,如果大於 $expiration 則要求用戶重新登錄。
頁面執行時間
計算當前頁面執行時間的例子:
<?php //do something sleep(3); //do something $running_time = time() - $_SERVER['REQUEST_TIME']; echo '頁面運行時間:',$running_time,' 秒'; ?>
執行例子輸出如下:
頁面運行時間:3 秒
$_SERVER['REQUEST_TIME'] 是 PHP 內置的當前頁面開始運行時的時間戳,在當前頁面運行結束時將 time() - $_SERVER['REQUEST_TIME'] 得到的就是當前頁面運行的時間(秒):
由於該例子沒有其他更多內容,因此是用 sleep(3) 函數讓頁面執行延遲 3 秒鍾。
