jQuery 倒计时/用服务器端值进行计数
-
20-09-2019 - |
题
脚本: 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)
Timeago是一个jQuery插件,可轻松支持自动更新模糊的时间戳(例如“4 分钟前”或“大约 1 天” 前“或”2年后“)
附:不要忘记设置 jQuery.timeago.settings.allowFuture = true;
允许将来的日期
如果您需要某种“回调”,您可以做两件事。
- 假设您只支持英语(无 i18n),只需使用
setInterval
每 20-25 秒检查 jQuery timeago 设置的字符串是否为“15 分钟前”,然后执行任何操作 黑客调整插件的代码并将自己挂入例如$timeago.inWords
方法并做任何事情,如果distanceMillis
参数是>=900000
(15*60*1000).
不隶属于 StackOverflow