程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中幾個常用的時間應用方式

PHP中幾個常用的時間應用方式

編輯:關於PHP編程

在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代碼:

  1. <?php  
  2. echo “現在是北京時間:”.date(“Y-m-d H:i:s”).”<p>”;  
  3. ?> 

顯示結果:

現在是北京時間:2010-11-30 20:50:03 (與本地時間相符)

php.ini修改後的代碼:

  1. [Date]  
  2. ; Defines the default timezone used by the date functions  
  3. ; http://php.net/date.timezone  
  4. date.timezone = PRC 

Zero希望大家按照上面的方法去設置本地時區,要注意的是修改的php.ini文件必須是當前服務器所加載的php.ini文件。

PHP中比較兩個時間的大小

在日常生活中我們要經常比較時間的早晚,對於我們來說判斷時間的大小很簡單。但是時間的比較不只是單純的數字大小的比較,因此相對來說還是比較復雜。那麼在PHP中通過什麼方式來比較兩個時間的大小呢?如果認真學習了上篇博文《從34到35,PHP時間戳》中的內容,我想這個問題也不會很棘手。

要比較兩個時間的大小,我們需要將時間轉化為時間戳格式,然後再進行比較這是最常用的方法。

常用到的函數是:strtotime()

語法格式:strtotime(time,now)

如果time是絕對時間,則now參數不起作用。

如果time是相對時間,則相對應的參數則對應函數就是now來提供,如果沒有提供now參數,那麼相對應的時間就是當前的本地時間。

實例:比較兩個絕對時間的大小

代碼:

  1. <?php  
  2. $zero1=date(“Y-m-d H:i:s”);  
  3. $zero2=”2010-11-29 21:07:00″;  
  4. echo “zero1的時間為:”.$zero1.”<br>”;  
  5. echo “zero2的時間為:”.$zero2.”<br>”;  
  6. if(strtotime($zero1)<strtotime($zero2)){  
  7. echo “zero1早於zero2″;  
  8. }else{  
  9. echo “zero2早於zero1″;  
  10. }  
  11. ?> 

輸出結果:

zero1的時間為:2010-11-30 21:12:55

zero2的時間為:2010-11-29 21:07:00

zero2早於zero1

注:可以根據實例發散思維

計算兩個日期的差值

奧運會倒計時,亞運會倒計時,生日倒計時這些倒計時都可以通過計算兩個日期的差值來實現,同樣需要用到strottime()函數。
實現倒計時需要將兩個時間的差值整數化,需要用到函數ceil()

ceil()函數的作用是求不小於給定實數的最小整數

實例:倒計時小程序

實例代碼:

  1. <?php  
  2. $zero1=strtotime (date(“Y-m-d H:i:s”)); //當前時間  
  3. $zero2=strtotime (“2011-2-03 24:00:00″); //過年時間  
  4. $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h  
  5. echo “離過年還有<strong>$guonian</strong>天!”;  
  6. ?> 

輸出結果:離過年還有66天!

計算腳本的運行時間

在打開很多網頁時都會有一個腳本的運行時間,百度搜索時也會出現搜索用時這些元素。那麼是通過什麼來實現的呢?

計算腳本運行時間需要用到microtime()函數,該函數的作用是返回當前時間戳和微秒數。返回格式為msec sec的字符串,其中sec是當前的UNIX時間戳,msec 為微秒數。

語法格式:microtime(void)

運算原理:分別記錄腳本運行前後的時間戳,並計算兩個時間戳的差值

實例:計算上個實例中的腳本運行時間

實例代碼:

  1. <?php  
  2. function run_time()  
  3. {  
  4. list($msec, $sec) = explode(” “, microtime());  
  5. return ((float)$msec + (float)$sec);  
  6. }  
  7. $start_time=run_time();  
  8. $zero1=strtotime (date(“Y-m-d H:i:s”)); //當前時間  
  9. $zero2=strtotime (“2011-2-03 24:00:00″); //過年時間  
  10. $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h  
  11. echo “離過年還有<strong>$guonian</strong>天!”;  
  12. $end_time=run_time();  
  13. ?>  
  14. <p> 

網頁加載時間:<font color=red><?php echo ($end_time-$start_time);?></font>秒

運行結果:離過年還有66天! 網頁加載時間:0.00011682510375977秒

explode()函數和list()函數將在以後的學習中詳細介紹!

好了到這裡Zero的PHP時間與日期學習就告一段落了,接下來將學習關於PHP核心技術方面的內容。歡迎各位博友持續關注!


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved