javascript - 检测午夜和重置数据的最佳方法

标签 javascript jquery momentjs

我一直在开发一个网络应用程序仪表板,我想知道如何检测午夜,以便使用 jquery 或 momentjs 重置一些包含前一天数据的数组。

最佳答案

使用 moment().format("h:mm:ss")h:mm:ss 格式返回时间。

var midnight = "0:00:00";
var now = null;

setInterval(function () {
    now = moment().format("H:mm:ss");
    if (now === midnight) {
        alert("Hi");
    }
    $("#time").text(now);
}, 1000);

JSFIDDLE

更好的方法是计算到午夜的秒数。使用 MomentJS,这非常简单且易于阅读:

// returns the number of seconds until next midnight
moment("24:00:00", "hh:mm:ss").diff(moment(), 'seconds');

所以,就这样做:

setTimeout(
   midnightTask,
   moment("24:00:00", "hh:mm:ss").diff(moment(), 'seconds')
);

function midnightTask() {
  /* do something */
}

JSFIDDLE

关于javascript - 检测午夜和重置数据的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26387052/

相关文章:

javascript - 当我尝试提交搜索时输入清晰的文本

javascript - $http/$q/promise 问题( Angular )

javascript - ajax改变html后如何维护jquery?

javascript - moment.js 现在数据错误

javascript - 如何在javascript中获取指定时区一天的开始时间和结束时间?

javascript - AmCharts ChartCursor 在图例上隐藏值

javascript - 用户输入的偏置硬币翻转

javascript - 使用日期选择器进行数据表内联编辑

javascript - 极简主义的微型 Javascript 模板系统?

mysql - 检索和插入日期时间时 MYSQL 的默认行为是什么?遇到一个有趣的时区偏移问题