php比較時間大小

php沒有直接比較時間的函式,不過可以用strtotime()來轉換時間後再比較。

語法:
strtotime(time,now)
這個含式可以轉換自 January 1 1970 00:00:00 GMT 到現在的秒數,第一個值是要計算的字串,第二個值是要到哪個時間,如果省略則是目前的時間。

例:
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday"));

可以像這樣使用來計算時間
$ThisDay = '2008-01-01';
$ThisDay = strtotime($ThisDay); // 將日期轉為Unix時間戳記
$ThisDay = strtotime("+1 day",$ThisDay); // 計算$ThisDay的後一天
$CheckDay= date("Y-m-d",$ThisDay); // 將Unix時間戳記轉回日期
echo $CheckDay ;//會顯示 2008-01-02

所以如果我們要比較兩個日期的話,就可以用以下的方式
$date2="2011-3-1";
$date="2011-1-20";
if(strtotime($date)>strtotime($date2)){
echo "Y";
}
else{
echo "N";
}

這是最近在做的網站,裡面有需要判斷搜尋的條件是否在有效範圍內而去找的方法,用起來還蠻方便的。

參考資料

留言

路過php寫道…
最後一個比較日期的例子.
兩個日期字串以strtotime()轉換之後就可以直接比較大小了,不必又用date()轉換,更何況用了date()又轉回字串了,這樣不就跟原來的日期字串一樣了嗎?
紅色死神寫道…
謝謝你的指正,我會研究一下再作修正 :)