如何在当前日期添加1天?

时间:2012-04-03 08:04:43

标签: javascript

我有使用JavaScript Date对象需要增加一天的当前日期对象。

var ds = stringFormat("{day} {date} {month} {year}", { 
                day: companyname.i18n.translate("day", language)[date.getUTCDay()], 
                date: date.getUTCDate(), 
                month: companyname.i18n.translate("month", language)[date.getUTCMonth()], 
                year: date.getUTCFullYear() 
});

我怎样才能加入一天?

我已经为getUTCDay()和getUTCDate()添加了+1,但是'Sunday'没有显示它。

6 个答案:

答案 0 :(得分:150)

将一天添加到日期对象:

var date = new Date();

// add a day
date.setDate(date.getDate() + 1);

答案 1 :(得分:26)

在我看来,最好的方法是在几毫秒内添加一整天,具体取决于您如何计算代码,如果您在该月的最后一天,它可能会陷入困境。

例如2月28日或3月31日。

以下是我将如何做的一个例子:

var current = new Date(); //'Mar 11 2015' current.getTime() = 1426060964567
var followingDay = new Date(current.getTime() + 86400000); // + 1 day in ms
followingDay.toLocaleDateString();

imo这确保准确性

这是另一个例子我不喜欢它可以为你工作,但不是那么干净,以上

var today = new Date('12/31/2015');
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate()+1);
tomorrow.toLocaleDateString();

imho这是===' POOP'

因此,有些人因为白天节省时间而对我的毫秒方法感到抱怨。所以我要打破这个。首先,一些国家和州没有日光节约时间。第二次添加正好24小时是一整天。如果日期数量不是每年更换一次,但在6个月后得到修复,那我就不会发现问题。但为了明确和不得不处理分配邪恶的日期()我已经想到这一点,现在彻底讨厌日期。所以这是我的新方法

var dd = new Date(); // or any date and time you care about 
var dateArray =  dd.toISOString().split('T')[0].split('-').concat( dd.toISOString().split('T')[1].split(':') );
// ["2016", "07", "04", "00", "17", "58.849Z"] at Z 

现在是有趣的部分!

var date = { 
    day: dateArray[2],
    month: dateArray[1],
    year: dateArray[0],
    hour: dateArray[3],
    minutes: dateArray[4],
    seconds:dateArray[5].split('.')[0],
    milliseconds: dateArray[5].split('.')[1].replace('Z','')
}

现在我们在Zulu子午线上清楚地写出了我们的官方有效国际日期对象。 现在改变日期

  dd.setDate(dd.getDate()+1); // this gives you one full calendar date forward
  tomorrow.setDate(dd.getTime() + 86400000);// this gives your 24 hours into the future. do what you want with it.

答案 2 :(得分:7)

int days = 1;
var newDate = new Date(Date.now() + days*24*60*60*1000);

CodePen



var days = 2;
var newDate = new Date(Date.now()+days*24*60*60*1000);

document.write('Today: <em>');
document.write(new Date());
document.write('</em><br/> New: <strong>');
document.write(newDate);
&#13;
&#13;
&#13;

答案 3 :(得分:1)

如果您想在当前日期时间增加一天(24小时),则可以这样添加毫秒:

new Date(Date.now() + ( 3600 * 1000 * 24))

答案 4 :(得分:0)

jpmottinthis question的启发,下面是一行代码:

var dateStr = '2019-01-01';
var days = 1;

var result = new Date(new Date(dateStr).setDate(new Date(dateStr).getDate() + days));

document.write('Date: ', result); // Wed Jan 02 2019 09:00:00 GMT+0900 (Japan Standard Time)
document.write('<br />');
document.write('Trimmed Date: ', result.toISOString().substr(0, 10)); // 2019-01-02

希望这会有所帮助

答案 5 :(得分:0)

currentDay = '2019-12-06';
currentDay = new Date(currentDay).add(Date.DAY, +1).format('Y-m-d');