Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Incrementing a date in JavaScript

I need to increment a date value by one day in JavaScript.

For example, I have a date value 2010-09-11 and I need to store the date of the next day in a JavaScript variable.

How can I increment a date by a day?

like image 498
Santanu Avatar asked Sep 09 '10 07:09

Santanu


People also ask

How do you increment a Date object?

To increment a JavaScript date object by one or more days, you can use the combination of setDate() and getDate() methods that are available for any JavaScript Date object instance. The setDate() method allows you to change the date of the date object by passing an integer representing the day of the month.

How do you add one day to a date?

const date = new Date(); date. setDate(date. getDate() + 1); // ✅ 1 Day added console.


2 Answers

Three options for you:

1. Using just JavaScript's Date object (no libraries):

My previous answer for #1 was wrong (it added 24 hours, failing to account for transitions to and from daylight saving time; Clever Human pointed out that it would fail with November 7, 2010 in the Eastern timezone). Instead, Jigar's answer is the correct way to do this without a library:

// To do it in local time var tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1);  // To do it in UTC var tomorrow = new Date(); tomorrow.setUTCDate(tomorrow.getUTCDate() + 1); 

This works even for the last day of a month (or year), because the JavaScript date object is smart about rollover:

// (local time) var lastDayOf2015 = new Date(2015, 11, 31); console.log("Last day of 2015: " + lastDayOf2015.toISOString()); var nextDay = new Date(+lastDayOf2015); var dateValue = nextDay.getDate() + 1; console.log("Setting the 'date' part to " + dateValue); nextDay.setDate(dateValue); console.log("Resulting date: " + nextDay.toISOString());

2. Using MomentJS:

var today = moment(); var tomorrow = moment(today).add(1, 'days'); 

(Beware that add modifies the instance you call it on, rather than returning a new instance, so today.add(1, 'days') would modify today. That's why we start with a cloning op on var tomorrow = ....)

3. Using DateJS, but it hasn't been updated in a long time:

var today = new Date(); // Or Date.today() var tomorrow = today.add(1).day(); 
like image 182
T.J. Crowder Avatar answered Sep 28 '22 17:09

T.J. Crowder


var myDate = new Date();  //add a day to the date myDate.setDate(myDate.getDate() + 1); 
like image 42
jmj Avatar answered Sep 28 '22 17:09

jmj