javascript - 如何在第二天的第一秒重新加载页面?在午夜?

标签 javascript

我有一个仪表板页面,用户整晚都在电视上打开它。

我注意到昨晚有一个错误,它需要在检测到新的一天时立即重新加载。 假设今天是 4/29。因此,就在 4/30 的第一秒,我需要重新加载 页面。 我在我的应用程序中使用 moment.js。我不确定是否应该在午夜 12:00 PM12:01 AM 加载页面。恐怕当我在中午 12:00 执行此操作时,它仍将这一天视为 4/29,从而导致重新加载永远不会发生,并且错误 🐛 仍然存在。

if(moment("24:00:00", "hh:mm:ss").diff(moment(), 'seconds') == 0){
    location.reload();
}

或者我应该这样做吗?

if(moment().format("h") == 12){
    location.reload();
}

我如何确定?如何验证?


编辑

我有这个代码

    //====================================
    //              RUN every 1 mn = 60 s
    //====================================
    window.setInterval(function () {

        getNextFeed('{{ $baby->id }}');

        if(moment("24:00:00", "hh:mm:ss").diff(moment(), 'seconds') == -1){
            location.reload();
        }

    }, 60000);

我刚把它加在那里。

最佳答案

根本不需要片刻,这里是普通解决方案,如果时间是 23:59,将重新加载页面,并每秒检查一次是否为真。

您可以将间隔提高到几秒或每半分钟,它不会改变并在 if (nowHour == 23 && nowMinuts == 59) 内设置您想要的时间

如果您还需要以秒为目标,则将其包含在 if 中并每隔一秒保留一次间隔。 但是,如果你包括第二次脸颊,那么做:if (nowHour == 23 && nowMinuts == 59 && nowSecunds >= 55) 使用 >= 以确保它会在 5 秒窗口内触发,以防万一。

但我相信您只需几分钟就可以了。

setInterval(function() {
  let nowHour = new Date().getHours()
  let nowMinuts = new Date().getMinutes()
  let nowSecunds = new Date().getSeconds()

  console.log("Hour " + nowHour + " Minutes " + nowMinuts + " Secunds " + nowSecunds)

  if (nowHour == 23 && nowMinuts == 59) {
    location.reload();
  }
}, 1000);

关于javascript - 如何在第二天的第一秒重新加载页面?在午夜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67316413/

相关文章:

javascript - 在javascript中打印错误对象

Javascript数组排序问题

javascript - 我无法在 javascript 中隐藏我的 p 标签

javascript - 三个复选框的 if 语句 javascript

javascript - 如何使用 Snap.SVG 和 Javascript 将一组 SVG 形状居中

javascript - 为什么我的时钟代码会减慢我的网站速度

javascript - 如果有人手动尝试在 angularjs 中访问网站的不同网址,如何重定向回同一页面(他已经所在的页面)

javascript - 如何在 Array.prototype 和 Object.prototype 的 javascript 中定义方法,使其不会出现在 for in 循环中

javascript - Promise.all 似乎并没有等待一切完成

javascript - 如何实现像 jQuery 这样的链式方法调用?