0

脚本: http: //keith-wood.name/countdown.htm

每日 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,它会有所帮助。

4

1 回答 1

2

我想你最好不要重新实现这个东西。

已经有一个非常好的 jQuery 插件来实现这个功能(也支持 i18n)

jQuery 时间前

Timeago 是一个 jQuery 插件,可以轻松支持自动更新模糊时间戳(例如“4 分钟前”或“大约 1 天前”或“2 年后”)

PS:不要忘记设置jQuery.timeago.settings.allowFuture = true;允许将来的日期


如果您需要某种“回调”,您可以做两件事。

  1. 假设您只支持英语(没有 i18n)只需使用setIntervalwhich 每 20-25 秒检查 jQuery timeago 设置的字符串是否为“15 分钟前”,然后执行任何操作
  2. 修改插件的代码并将自己挂钩到 eg$timeago.inWords方法中,如果distanceMillis参数为>=900000(15*60*1000) 则执行任何操作。
于 2010-03-15T09:36:48.983 回答