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

2022-08-30 02:24:01

我有一个当前的 Date 对象,需要使用 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() 
});

如何添加一天?

我已经添加了+1,但它没有显示“星期日”,我期望发生这种情况。getUTCDay()getUTCDate()day


答案 1

向日期对象添加一天:

var date = new Date();

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

答案 2

在我看来,最好的方法是以毫秒为单位添加一整天,这取决于你如何分解你的代码,如果你在当月的最后一天,它可能会搞砸。

例如 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();

恕我直言,这确保了准确性

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

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

恕我直言this === 'POOP'

因此,你们中的一些人对我的毫秒方法感到抱怨,因为白天节省了时间。所以我要抨击这个。首先,一些国家和州没有天光节灯时间。第二次添加正好24小时是一整天。如果日期编号每年没有变化一次,但6个月后就被修复了,我没有看到那里的问题。但是为了明确并不得不处理分配邪恶,我已经仔细考虑了这一点,现在完全讨厌Date。这就是我的新方法。Date()

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','')
}

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

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.