2012-01-04 161 views
2

我想問一些想法或解決方案如何在PHP中使倒數計時器。我的頁面使用元刷新每分鐘自動刷新一次,因此不需要客戶端倒數計時器。所以服務器端的PHP是我正在尋找的。倒數計時器在PHP

所以這裏是場景。

最後回答是2012-01-02 10:00:00,下一個答案應該是2012-01-02 10:45:00。

這意味着它需要從最後一個答案中增加45分鐘。從目前的時間說,例如2012-01-02 10:05:00,所以倒數計時器將顯示下一個答案40分鐘左。如果計時器變爲0,它會顯示你輸了。然後用戶將回答它,然後從最後一個45分鐘後添加的答案倒數。

+0

你需要使用JavaScript的定時器顯示。 PHP將無法實現這一點,因爲它只呈現HTML。這裏是一個很棒的jQuery庫:http://keith-wood.name/countdown.html – Dutchie432 2012-01-04 15:55:02

+0

元刷新可以禁用 – 2012-01-04 15:55:33

回答

1

一種解決方案可能是直接存儲時間戳以前的答案,然後加上然後將其與正確的時間

$time_prev = $_some_how_from_db; 
$time_now = time(); 
if($time_now-$time_prev>45*3600){ 
// do action of losing 
} 

這比較是採取行動的時候時間已經過去

否則,你可以保持每分鐘更新使用AJAX。這將避免你的刷新,這可能證明是不好的用戶方便

+0

我喜歡這個想法,因爲當時間結束時有一個動作。但我不能使它工作。你能不能把它展示出來,如果時間結束了,否則顯示剩餘時間。一旦它的結束不重置只是留在它結束..謝謝 – 2012-01-05 06:55:28

+0

你希望我表現出什麼?使AJAX請求更新時間或動作部分 – 2012-01-05 08:05:53

+0

定時器在短時間後變爲負值。有沒有辦法在時間結束時不顯示負面? – 2012-01-05 08:12:29

2
echo date("i:s",strtotime("2012-01-02 10:45:00")-time())." Remaining"; 

以爲我不建議這樣的解決方案,而是你應該javascript..but爲u說年頁每分鐘獲得刷新去..這是可以使用..

+0

$ lastdate = strtotime('2012-01-05 01:59:07'); $ added_minutes =「45」; (date(「i:s」,strtotime('+'。$ added_minutes。'minute',$ lastdate)-time())== 0){ echo「DUE」; (「i:s」,strtotime('+'。$ added_minutes。'minute',$ lastdate)-time())。「Mins」;其他{ } } 這個計數器工作,但它重置回55分鐘,如果刷新頁面。有沒有一種方法不會重置或循環,只是說當應得的時候......謝謝 – 2012-01-05 06:53:47

+0

謝謝Rajat,它也幫助我。 – 2012-01-05 09:27:10