2012-11-20 100 views
1

我期待在PHP中創建倒數計時器。當用戶點擊一個按鈕時,它會將當前日期&保存到數據庫條目中,那麼它應該將該條目與當前日期和時間以及差異大於48小時時的「doSomething」進行比較。PHP倒計時從設定的日期時間48小時

我的問題是與實際的倒計時。

我試過以下,但無濟於事只計算兩個字符串的差異,並不需要在帳戶中的日子。不僅如此,但它也似乎顯示不正確的結果差異:

$d1=strtotime("2012-07-08 11:14:15"); 
$d2=strtotime("2012-07-09 12:14:15"); 
$diff = round(abs($d1 - $d2)); 
$cd = date("H:i:s", $diff); 
echo $cd; 

感謝您幫助我從StackOverflow Yan.kun!下面提交的代碼是解決方案!爲了嚴格地顯示小時倒計時:分:秒我替換爲以下中的printf()代碼:

$hours = ($result->d*24)+$result->h; 
$minutes = $result->i; 
$seconds = $result->s; 
echo $hours . ":" . $minutes . ":" . $seconds; 

回答

2

試試這個:

$d1 = new DateTime("2012-07-08 11:14:15"); 
$d2 = new DateTime("2012-07-09 12:14:15"); 
$result = $d1->diff($d2); 

printf('difference is %d day(s), %d hour(s), %d minute(s)', $result->d, $result->h, $result->i); 

編輯: 如果你有沒有PHP 5.3可用,您可以將您的時間轉換爲如this answer中所述的unix時期時間戳。

+3

注意:這隻有PHP5.3 + – Peon

+0

謝謝你的提示。 –

+0

太棒了!謝謝。我希望它嚴格顯示小時:分鐘:秒的全部差異,並且由於倒計時最多爲2天,所以我用OP中添加的代碼替換了printf。 – Dean

0

不知道這是你想要什麼:

$d1=strtotime("2012-11-18 11:14:15");//2 days earlier 
$d2=strtotime("2012-11-20 11:14:15");//today 
$diff = $d2 - $d1; //difference in seconds. 

$hours = $diff/60/60;//translation to minutes then to hours 

echo $hours; 

if($hours>48){ 
    echo "Script"; 
}