0

我现在正在构建一个 chrome 扩展。

我想设置一个在每天 23:59:59 触发的闹钟,这样我可以在一天结束时重置一些已保存的设置。

我在下面写了这段代码,但是我不习惯使用日期对象。而且我担心这段代码是否可以正常工作并且不会搞砸一切。

特别是,我担心第二天再次设置警报的代码。

var day = now.getDate() + 1;

要获取第二天的日期,我只需将“now.getDate()”的返回值加 1。但是,我想知道“now.getDate()”的返回值是否是月底,因此,加 1 最终会得到不存在的日期。

请查看我的代码并告诉我这是否正常工作。

先感谢您!!

var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
var day = now.getDate();
var timestamp = Number(new Date(year, month, day, 23, 59, 59, 0));

//set an alarm for today at 23:59:59.
chrome.alarms.create('resetSpentTime', {
    when: timestamp
});

// when alarm fires, do the following.
chrome.alarms.onAlarm.addListener(function() {

    //clear some saved settings at the end of day.

    //After that, set an alarm again for tomorrow at 23:59:59.
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth();
    var day = now.getDate() + 1;
    var timestamp = Number(new Date(year, month, day, 23, 59, 59, 0));

    //set an alarm for tomorrow at 23:59:59.
    chrome.alarms.create('resetSpentTime', {
        when: timestamp
    });

})
4

2 回答 2

3

我建议对 Javascript 中的所有日期操作使用 date.js Link for date.js 文件,您可以在其中轻松添加日期或解析日期。请参阅给定站点上的演示。

于 2013-09-12T09:31:18.950 回答
1

你可以试试这个。第二天和月底是自动处理的。

var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);

来源:将天数添加到 JavaScript 日期

于 2013-09-12T09:01:02.477 回答