2010-03-15 143 views
0

腳本計數:http://keith-wood.name/countdown.htmjQuery的倒計時/服務器端值

日報JSON響應:

items: { fajr: '5:23 am', sharooq: '7:23 am', dhur: '1:34 pm', asr: '4:66 pm': magrib: '6:23 pm', isha: '8:01 pm'} 

當網站負載,我做一個Ajax請求,並獲得上述的響應時間。這些是每天都會發生的事件,具有不同的時間。我想得到那個時間,並計算剩下多少分鐘或幾小時或幾秒鐘,然後顯示並且一旦完成秒鐘,然後顯示該事件發生多少分鐘前。 15分鐘後,顯示新的事件倒計時。這是怎麼會看在顯示屏上:

dhur 2 hours left 
dhur 2 minutes left (if no longer hours left) 
dhur 55 seconds left (if no longer minutes left) 
dhur 5 seconds ago (if count down finished and then show how many seconds ago) 
dhur 9 minutes ago (if extended more then seconds, then show how many minutes ago) 
asr 1 hour left (after 15 minutes later time changes to new event) 

如果我使用的腳本是不好的,你喜歡其他一些腳本這樣的任務,請與我分享。它不一定是一個jQuery腳本,但它有助於jQuery。

回答

2

我想你最好不要重新實現這個東西。

已經有一個非常好的jQuery插件這個功能(與支持i18n太)

jQuery timeago

TIMEAGO是一個jQuery插件,使 輕鬆支持自動 更新模糊時間戳 (例如「4分鐘前」或「約1天 前」或「從現在開始2年」)

P.S:不要忘記設置jQuery.timeago.settings.allowFuture = true;允許日期在未來


如果你需要某種形式的「回調」你可以做兩件事情。

  1. 假設你只支持英語(無國際化)簡單地用setInterval每20-25秒的檢查,若由jQuery的TIMEAGO設定的字符串爲「15分鐘前」,然後盡一切
  2. 哈克 適應插件的代碼並將你自己插入到例如$timeago.inWords方法,如果distanceMillis參數爲>=900000(15 * 60 * 1000),則執行任何操作。
+0

它不支持回調,我該如何解決這個問題?像每秒回調或其更改時..因爲我必須在倒計時完成後運行操作。 – Basit 2010-03-15 13:52:08