这段代码运作正常吗?我想得到以下日期的时间戳

时间:2013-09-12 08:53:24

标签: javascript jquery google-chrome-extension

我现在正在构建Chrome扩展程序。

我想在每天23:59:59设置闹钟,所以我可以在一天结束时重置一些保存的设置。

我在下面编写了这段代码但是,我不习惯使用Date Object。 而且我担心这段代码是否正常运行并且不会搞砸所有内容。

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

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
    });

})

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

你可以试试这个。第二天以及月末是自动处理。

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

来源:Add days to JavaScript Date