PHP中比較兩個時間的大小與日期的差值


在這里我們全用到時間戳

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 參數被廢棄。因此應該使用新的時區處理特性

   
 在日常生活中我們要經常比較時間的早晚,對於我們來說判斷時間的大小很簡單。但是時間的比較不只是單純的數字大小的比較,因此相對來說還是比較復雜。那么在php中通過什么方式來比較兩個時間的大小呢?

    要比較兩個時間的大小,我們需要將時間轉化為時間戳格式,然后再進行比較這是最常用的方法。常用到的函數是:strtotime()
     語法格式:strtotime(time,now)
     如果time是絕對時間,則now參數不起作用
     如果time是相對時間,則相對應的參數則對應函數就是now來提供,如果沒有提供now參數,那么相對應的時間就是當前的本地時間。

實例:比較兩個絕對時間的大小
 代碼:
<?php
 $zero1=date(“y-m-d h:i:s”);
 $zero2=”2010-11-29 21:07:00′;
 echo “zero1的時間為:”.$zero1.”<br>”;
 echo “zero2的時間為:”.$zero2.”<br>”;
 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()函數的作用是求不小於給定實數的最小整數

實例:倒計時小程序
 實例代碼:
<?php
 $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 “離過年還有<strong>$guonian</strong>天!”;
 ?>


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

strtotime()函數解析

定義和用法
 strtotime() 函數將任何英文文本的日期時間描述解析為 unix 時間戳。

語法
 strtotime(time,now)參數 描述
 time 規定要解析的時間字符串。
 now 用來計算返回值的時間戳。如果省略該參數,則使用當前時間。

說明
 該函數預期接受一個包含美國英語日期格式的字符串並嘗試將其解析為 unix 時間戳(自 january 1 1970 00:00:00 gmt 起的秒數),其值相對於 now 參數給出的時間,如果沒有提供此參數,則用系統當前時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM