在PHP中預設設定是標準的格林威治時間(零時區),所以如果要獲得本地時間必須修改PHP的預設時區(八時區,除非您是外國的朋友,我想很少吧)。
PHP系統時區設定
修改PHP系統時區的兩種方式:
1、修改php.ini檔案中的設定,找到[date]下的“;date.timezone=”,將該項修改為date.timezone=Asia/Hong_Kong (PRC 中國時間),然後重新啟動Apache伺服器。
2、在應用程式中,使用時間日期函數之前添加“date_default_timezone_set(“Asia/Hong_Kong”)”函數
修改php.ini檔案後擷取本地時間:
php代碼:
- echo “現在是北京時間:”.date(“Y-m-d H:i:s”).”
”;
- ?>
顯示結果:
現在是北京時間:2010-11-30 20:50:03 (與本地時間相符)
php.ini修改後的代碼:
- [Date]
- ; Defines the default timezone used by the date functions
- ; http://php.net/date.timezone
- date.timezone = PRC
Zero希望大家按照上面的方法去設定本地時區,要注意的是修改的php.ini檔案必須是當前伺服器所載入的php.ini檔案。
PHP中比較兩個時間的大小
在日常生活中我們要經常比較時間的早晚,對於我們來說判斷時間的大小很簡單。但是時間的比較不只是單純的數字大小的比較,因此相對來說還是比較複雜。那麼在PHP中通過什麼方式來比較兩個時間的大小呢?如果認真學習了上篇博文《從34到35,PHP時間戳記》中的內容,我想這個問題也不會很棘手。
要比較兩個時間的大小,我們需要將時間轉化為時間戳記格式,然後再進行比較這是最常用的方法。
常用到的函數是:strtotime()
文法格式:strtotime(time,now)
如果time是絕對時間,則now參數不起作用。
如果time是相對時間,則相對應的參數則對應函數就是now來提供,如果沒有提供now參數,那麼相對應的時間就是當前的本地時間。
執行個體:比較兩個絕對時間的大小
代碼:
- $zero1=date(“Y-m-d H:i:s”);
- $zero2=”2010-11-29 21:07:00″;
- echo “zero1的時間為:”.$zero1.”
”;
- echo “zero2的時間為:”.$zero2.”
”;
- if(strtotime($zero1)<strtotime($zero2)){
- echo “zero1早於zero2″;
- }else{
- echo “zero2早於zero1″;
- }
- ?>
輸出結果:
zero1的時間為:2010-11-30 21:12:55
zero2的時間為:2010-11-29 21:07:00
zero2早於zero1
註:可以根據執行個體發散思維
計算兩個日期的差值
奧運會倒計時,亞運會倒計時,生日倒計時這些倒計時都可以通過計算兩個日期的差值來實現,同樣需要用到strottime()函數。
實現倒計時需要將兩個時間的差值整數化,需要用到函數ceil()
ceil()函數的作用是求不小於給定實數的最小整數
執行個體:倒計時小程式
執行個體代碼:
- $zero1=strtotime (date(“Y-m-d H:i:s”)); //目前時間
- $zero2=strtotime (“2011-2-03 24:00:00″); //過年時間
- $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
- echo “離過年還有$guonian天!”;
- ?>
輸出結果:離過年還有66天!
計算指令碼的已耗用時間
在開啟很多網頁時都會有一個指令碼的已耗用時間,百度搜尋時也會出現搜尋用時這些元素。那麼是通過什麼來實現的呢?
計算指令碼已耗用時間需要用到microtime()函數,該函數的作用是返回目前時間戳和微秒數。返回格式為msec sec的字串,其中sec是當前的UNIX時間戳記,msec 為微秒數。
文法格式:microtime(void)
運算原理:分別記錄指令碼運行前後的時間戳記,並計算兩個時間戳記的差值
執行個體:計算上個執行個體中的指令碼已耗用時間
執行個體代碼:
- function run_time()
- {
- list($msec, $sec) = explode(” “, microtime());
- return ((float)$msec + (float)$sec);
- }
- $start_time=run_time();
- $zero1=strtotime (date(“Y-m-d H:i:s”)); //目前時間
- $zero2=strtotime (“2011-2-03 24:00:00″); //過年時間
- $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
- echo “離過年還有$guonian天!”;
- $end_time=run_time();
- ?>
網頁載入時間:秒
運行結果:離過年還有66天! 網頁載入時間:0.00011682510375977秒
explode()函數和list()函數將在以後的學習中詳細介紹!
好了到這裡Zero的PHP時間與日期學習就告一段落了,接下來將學習關於PHP核心技術方面的內容。歡迎各位博友持續關注!
http://www.bkjia.com/PHPjc/445817.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445817.htmlTechArticle在PHP中預設設定是標準的格林威治時間(零時區),所以如果要獲得本地時間必須修改PHP的預設時區(八時區,除非您是外國的朋友,我想...