比較兩個時間戳的大小

2021-07-25 08:00:26 字數 2070 閱讀 5864

比較兩個時間戳的大小

例項說明

在一些程式中經常需要將兩個時間進行比較,但是由於時間是由年、月、日、時、分、秒組成的,比較起來很不方便,這時可以把時間轉換成時間戳來進行比較。本實     例通過date()函式、strtotime()函式和ceil()函式實現比較兩個時間戳的大小,執行結果如圖1.6所示。

圖1.6  比較兩個時間戳的大小

實現過程

具體步驟如下:

(1)建立php指令碼檔案。首先對php語言中的時區進行設定,將時區更改為中國上海時區。然後通過strtotime()函式獲取當前時間的unix時間戳,並與指定的時間戳進行算術運算。最後,將時間戳運算結果轉換為天數,通過ceil()函式進行取整運算並輸出結果。其**如下:

phpdate_default_timezone_set("asia/shanghai");         //將格林威治時間設定為本地時間  $a

= strtotime

("now");                              //取得當前時間戳  $b

= strtotime

("05 may 2011");                      //取得2023年5月5號的時間戳  

echo $a."\n";  

echo "輸出日期".date("y-m-d h:i:s",$a)."

<

br>

<

br>

";      //取得以$a為時間點的時間  

echo $b."\n";  

echo "輸出日期".date("y-m-d h:i:s",$b)."

<

br>

<

br>

";      //取得以$b為時間點的時間  $c

= ceil

(($a - $b)/(3600*24));                         //計算相差天數  

echo "距2023年5月5號已過去".$c."天";  

?>

(2)將該檔案儲存於\mr\01\006資料夾下,並命名為index.php。執行結果如圖1.6所示。

多學兩招:

有效的時間戳通常從fri, 13 dec 1901 20:45:54 gmt 到 tue, 19 jan 2038 03:14:07 gmt(對應於32位有符號整數的最小值和最大值)。不是所有的平台都支援負的時間戳,那麼日記範圍就被限制為不能早於unix紀元。這意味著在2023年1月1日之前的日期將不能用在windows、某些linux版本以及幾個其他的作業系統中。

技術要點

本例項主要是通過strtotime()函式將時間轉換為unix時間戳,並進行相關取整運算而實現的。其中涉及相關函式語法如下。

(1)strtotime()函式:本函式預期接受乙個包含英文日期格式的字串並嘗試將其解析為unix時間戳。

int strtotime( string time [, int now]); 

該函式有兩個引數。如果引數time的格式是絕對時間,則now引數不起作用;如果引數time的格式是相對時間,其對應的時間就是引數now來提供的,當沒有提供引數now時,對應的時間就為當前時間。如果解析失敗,則返回false。在php5.1.0之前的版本中,本函式在失敗時返回-1。

(2)ceil()函式:返回不小於value的下乙個整數。

float ceil ( float value); 

腳下留神:

在unix系統中,日期與時間表示為自2023年1月1日零點起到當前時刻的秒數,這種時間稱為unix時間戳,以32位二進位制表示。其中,2023年1月1日零點稱為unix世紀元。unix時間戳提供了一種統

一、簡潔的時間表示方式,在不同的作業系統中均支援這種時間表示方式,同一時間在unix和windows中均以相同的unix時間戳表示,所以不需要在不同的系統中進行轉換。同時,unix時間戳是乙個時間差,與時區沒有關係,無論當前php中使用的是何種時區,其unix時間戳都是唯一的。

比較兩個時間大小

datetime.compare t1,t2 比較兩個日期大小,排前面的小,排在後面的大,比如 2011 2 1就小於2012 3 2 返回值小於零 t1 小於 t2。返回值等於零 t1 等於 t2。返回值大於零 t1 大於 t2。如 c sharp view plain copy using sy...

java比較兩個時間

工作中遇到需要將兩個時間進行比對,所以書寫如下方法來實現 public static void main string args public static boolean comparetime string time1,string time2,string format else catch ...

如何比較兩個時間字串的大小

現在有兩個字串,是從表單讀取來的日期性,2003 10 12 與 2003 10 21 現在如何判斷他們的大小。如果不想再轉為date型別比較 有一種簡單的方法 string a 2003 10 12 string b 2003 10 21 int result a.compareto b if r...