How can I add 1 day to current date?

Javascript

Javascript Problem Overview


I have a current Date object that needs to be incremented by one day using the JavaScript Date object. I have the following code in place:

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

How can I add one day to it?

I've added +1 to getUTCDay() and getUTCDate() but it doesn't display 'Sunday' for day, which I am expecting to happen.

Javascript Solutions


Solution 1 - Javascript

To add one day to a date object:

var date = new Date();

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

Solution 2 - Javascript

In my humble opinion the best way is to just add a full day in milliseconds, depending on how you factor your code it can mess up if you are on the last day of the month.

For example Feb 28 or march 31.

Here is an example of how I would do it:

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

Imho this insures accuracy

Here is another example. I do not like that. It can work for you but not as clean as example above.

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

Imho this === 'POOP'

So some of you have had gripes about my millisecond approach because of day light savings time. So I'm going to bash this out. First, Some countries and states do not have Day light savings time. Second Adding exactly 24 hours is a full day. If the date number does not change once a year but then gets fixed 6 months later I don't see a problem there. But for the purpose of being definite and having to deal with allot the evil Date() I have thought this through and now thoroughly hate Date. So this is my new Approach.

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 

Now for the fun part!

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

Now we have our Official Valid international Date Object clearly written out at Zulu meridian. Now to change the date

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.

Solution 3 - Javascript

If you want add a day (24 hours) to current datetime you can add milliseconds like this:

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

Solution 4 - Javascript

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

Solution 5 - Javascript

Inspired by jpmottin in this question, here's the one line code:

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

Hope this helps

Solution 6 - Javascript

This is function you can use to add a given day to a current date in javascript.

function addDayToCurrentDate(days){
  let currentDate = new Date()
  return new Date(currentDate.setDate(currentDate.getDate() + days))
}

// current date = Sun Oct 02 2021 13:07:46 GMT+0200 (South Africa Standard Time)
// days = 2

console.log(addDayToCurrentDate(2))
// Mon Oct 04 2021 13:08:18 GMT+0200 (South Africa Standard Time)

Solution 7 - Javascript

// Function gets date and count days to add to passed date
function addDays(dateTime, count_days = 0){
  return new Date(new Date(dateTime).setDate(dateTime.getDate() + count_days));
}

// Create some date
const today = new Date("2022-02-19T00:00:00Z");

// Add some days to date
const tomorrow = addDays(today, 1);

// Result
console.log("Tomorrow => ", new Date(tomorrow).toISOString());
// 2022-02-20T00:00:00.000Z

Solution 8 - Javascript

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfranticfranticView Question on Stackoverflow
Solution 1 - JavascriptRobGView Answer on Stackoverflow
Solution 2 - JavascriptPeter the RussianView Answer on Stackoverflow
Solution 3 - JavascriptPablo Andres Diaz MazzaroView Answer on Stackoverflow
Solution 4 - JavascriptsergeView Answer on Stackoverflow
Solution 5 - JavascriptJee MokView Answer on Stackoverflow
Solution 6 - JavascriptncutixavierView Answer on Stackoverflow
Solution 7 - JavascriptNurbek IsmoilovView Answer on Stackoverflow
Solution 8 - JavascriptPaul WolbersView Answer on Stackoverflow