脚本: 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,就会有所帮助。

有帮助吗?

解决方案

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

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

jQuery 时间以前

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

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


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

  1. 假设您只支持英语(无 i18n),只需使用 setInterval 每 20-25 秒检查 jQuery timeago 设置的字符串是否为“15 分钟前”,然后执行任何操作
  2. 黑客 调整插件的代码并将自己挂入例如 $timeago.inWords 方法并做任何事情,如果 distanceMillis 参数是 >=900000 (15*60*1000).
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top