2010-03-15 62 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