【问题标题】:jQuery countdown/count up with server-side valuesjQuery 倒计时/向上计数与服务器端值
【发布时间】:2012-03-12 23:46:15
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery timer countdown


    【解决方案1】:

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

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

    jQuery timeago

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

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


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

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

    【讨论】:

    • 它不支持回调,我该如何解决?就像每一秒的回调或者当它改变时......因为我必须在倒计时完成后运行操作。
    猜你喜欢
    • 2012-02-13
    • 2012-05-10
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    相关资源
    最近更新 更多