Home > Web Front-end > JS Tutorial > How to Add 30 Minutes to a JavaScript Date Object?

How to Add 30 Minutes to a JavaScript Date Object?

Mary-Kate Olsen
Release: 2025-01-04 10:50:40
Original
999 people have browsed it

How to Add 30 Minutes to a JavaScript Date Object?

How to add 30 minutes to a JavaScript Date object?

To add 30 minutes to a JavaScript Date object, you can use the following steps:

Using a Library

If you are doing a lot of date work, you may want to look into JavaScript date libraries like Luxon, Day.js, or Moment.js. For example, with Moment.js, this is simply:

var newDateObj = moment(oldDateObj).add(30, 'm').toDate();

Vanilla JavaScript

This is like chaos's answer, but in one line:

var newDateObj = new Date(oldDateObj.getTime() diff*60000);
Where diff is the difference in minutes you want from oldDateObj's time. It can even be negative.

Or as a reusable function, if you need to do this in multiple places:

function addMinutes(date, minutes) {

return new Date(date.getTime() + minutes*60000);
Copy after login

}
And just in case this is not obvious, the reason we multiply minutes by 60000 is to convert minutes to milliseconds.

Be Careful with Vanilla JavaScript. Dates Are Hard!

You may think you can add 24 hours to a date to get tomorrow's date, right? Wrong!

It turns out, if the user observes daylight saving time, a day is not necessarily 24 hours long. There is one day a year that is only 23 hours long, and one day a year that is 25 hours long. For example, in most of the United States and Canada, 24 hours after midnight, Nov 2, 2014, is still Nov 2:

const NOV = 10; //because JS months are off by one...
addMinutes(new Date(2014, NOV, 2), 60*24); //In USA, prints 11pm on Nov 2, not 12am Nov 3!
This is why using one of the afore-mentioned libraries is a safer bet if you have to do a lot of work with this.

Below is a more generic version of this function that I wrote. I'd still recommend using a library, but that may be overkill/impossible for your project. The syntax is modeled after MySQL DATE_ADD function.

/**

  • Adds time to a date. Modelled after MySQL DATE_ADD function.
  • Example: dateAdd(new Date(), 'minute', 30) //returns 30 minutes from now.
  • https://stackoverflow.com/a/1214753/18511
  • @param date Date to start with
  • @param interval One of: year, quarter, month, week, day, hour, minute, second
  • @param units Number of units of the given interval to add.
    */

function dateAdd(date, interval, units) {
if(!(date instanceof Date))

return undefined;
Copy after login

var ret = new Date(date); //don't change original date
var checkRollover = function() { if(ret.getDate() != date.getDate()) ret.setDate(0);};
switch(String(interval).toLowerCase()) {

case 'year'   :  ret.setFullYear(ret.getFullYear() + units); checkRollover();  break;
case 'quarter':  ret.setMonth(ret.getMonth() + 3*units); checkRollover();  break;
case 'month'  :  ret.setMonth(ret.getMonth() + units); checkRollover();  break;
case 'week'   :  ret.setDate(ret.getDate() + 7*units);  break;
case 'day'    :  ret.setDate(ret.getDate() + units);  break;
case 'hour'   :  ret.setTime(ret.getTime() + units*3600000);  break;
case 'minute' :  ret.setTime(ret.getTime() + units*60000);  break;
case 'second' :  ret.setTime(ret.getTime() + units*1000);  break;
default       :  ret = undefined;  break;
Copy after login

}
return ret;
}
Working jsFiddle demo.

The above is the detailed content of How to Add 30 Minutes to a JavaScript Date Object?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template