2011-05-27 190 views
28

如何比較PHP中的時間?PHP比較時間

我想這樣說:

$ThatTime ="14:08:10"; 
$todaydate = date('Y-m-d'); 
$time_now=mktime(date('G'),date('i'),date('s')); 
$NowisTime=date('G:i:s',$time_now); 
if($NowisTime >= $ThatTime) { 
    echo "ok"; 
} 

上面的代碼不會打印OK的。我期待它。

+2

什麼是要完成? – 2011-05-28 00:01:14

回答

52
$ThatTime ="14:08:10"; 
if (time() >= strtotime($ThatTime)) { 
    echo "ok"; 
} 

使用DateTime中的溶液(也關於時區)。

$dateTime = new DateTime($ThatTime); 
if ($dateTime->diff(new DateTime)->format('%R') == '+') { 
    echo "OK"; 
} 

http://php.net/datetime.diff

+0

確定但時間()將花費服務器的時間? -B因爲我需要每次通過date_default_timezone_set($ TimeZone)指定默認時區; – 2011-05-28 00:06:03

+0

@DiegoP .:必須說,我以前沒有意識到,但你是對的。但是,我用'DateTime'添加了另一個解決方案。 – KingCrunch 2011-05-28 00:14:01

+0

它給出了一個錯誤=((致命錯誤:調用未定義的方法DateTime :: diff() – 2011-05-28 00:17:00

10

要查看的CURENT時間大於或等於14點08分10秒做到這一點:

if (time() >= strtotime("14:08:10")) { 
    echo "ok"; 
} 

根據您的輸入源,一定要考慮時區。

參見PHP time()PHP strtotime()

4

比較時間簡單的方法是:

$time = date('H:i:s',strtotime("11 PM")); 
if($time < date('H:i:s')){ 
    // your code 
}