我需要在JavaScript中增加一天的日期值。

例如,我有一个日期值2010-09-11,我需要将第二天的日期存储在一个JavaScript变量中。

如何将日期增加一天?


当前回答

两种方法:

1:

var a = new Date()
// no_of_days is an integer value
var b = new Date(a.setTime(a.getTime() + no_of_days * 86400000)

2:类似上述方法

var a = new Date()
// no_of_days is an integer value
var b = new Date(a.setDate(a.getDate() + no_of_days)

其他回答

明天在纯JS的一行,但它是丑陋的!

new Date(new Date().setDate(new Date().getDate() + 1))

结果如下:

Thu Oct 12 2017 08:53:30 GMT+0200 (Romance Summer Time)

JavaScript日期的时区/夏令时感知日期增量:

function nextDay(date) {
    const sign = v => (v < 0 ? -1 : +1);
    const result = new Date(date.getTime());
    result.setDate(result.getDate() + 1);
    const offset = result.getTimezoneOffset();
    return new Date(result.getTime() + sign(offset) * offset * 60 * 1000);
}

我觉得没有什么比. gettime()和. settime()更安全的了,所以这应该是最好的,而且性能也很好。

const d = new Date()
console.log(d.setTime(d.getTime() + 1000 * 60 * 60 * 24)) // MILLISECONDS

. setdate()用于无效的Date(如31 + 1)太危险了,这取决于浏览器的实现。

使用dateObj.toJSON()方法获取日期的字符串值参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON 从返回值中切片日期,然后增加所需的天数。

var currentdate = new Date();
currentdate.setDate(currentdate.getDate() + 1);
var tomorrow = currentdate.toJSON().slice(0,10);

最简单的方法是转换为毫秒,然后加上1000*60*60*24毫秒,例如:

var tomorrow = new Date(today.getTime()+1000*60*60*24);