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

來源:互聯網
上載者:User
在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. echo “現在是北京時間:”.date(“Y-m-d H:i:s”).”

    ”;

  2. ?>

顯示結果:

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

輸出結果:

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

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

zero2早於zero1

註:可以根據執行個體發散思維

計算兩個日期的差值

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

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

執行個體:倒計時小程式

執行個體代碼:

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

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

計算指令碼的已耗用時間

在開啟很多網頁時都會有一個指令碼的已耗用時間,百度搜尋時也會出現搜尋用時這些元素。那麼是通過什麼來實現的呢?

計算指令碼已耗用時間需要用到microtime()函數,該函數的作用是返回目前時間戳和微秒數。返回格式為msec sec的字串,其中sec是當前的UNIX時間戳記,msec 為微秒數。

文法格式:microtime(void)

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

執行個體:計算上個執行個體中的指令碼已耗用時間

執行個體代碼:

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

網頁載入時間:秒

運行結果:離過年還有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的預設時區(八時區,除非您是外國的朋友,我想...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.