Agregar días (o minutos u horas) a la fecha de Javascript [o restar]

Este artículo explicará cómo sumar (o restar ) días, minutos, horas, segundos (etc.) a una fecha JavaScript.

¿Por qué querrías hacer esto? Tal vez quiera decirle a un usuario que su tarea vence en una semana y proporcionar la fecha, o tal vez su aplicación necesite saber cuál fue la fecha hace 30 días para mostrar un recordatorio; hay casos de uso casi infinitos.

Agregar días hasta la fecha usando Vanilla JavaScript

Primero, así es como se hace en JavaScript simple y antiguo:

var date = new Date(); // Todays date - the Date() constructor will default to the current date/time if no value is passed to it

var addDays = 4;
var addHours = 3;
var addMinutes = 2;
var addSeconds = 1;

// Add hours
// The getTime() method returns the number of milliseconds since January 1, 1970, so we can use it to alter the value of the date by any number of milliseconds
date.setTime(date.getTime() + (addHours * 60 * 60 * 1000)); // Convert hours to milliseconds - 60 minutes to an hour, 60 seconds to a minute, 1000 milliseconds to a second

// Add days
date.setTime(date.getTime() + (addDays * 24 * 60 * 60 * 1000)); // Similar to above, but additionally multiplying by 24 as there are 24 hours in a day

// Add minutes
date.setTime(date.getTime() + (addMinutes * 60 * 1000)); // Convert minutes to milliseconds

// Add seconds
date.setTime(date.getTime() + (addSeconds *  1000)); // Convert seconds to milliseconds

console.log(date);

La fecha resultante será la fecha de hoy más 4 días, 3 horas2 minutos y 1 segundo.

Puede proporcionar números negativos o usar el operador (resta) en lugar de suma.

Agregar días hasta la fecha usando Moment.js

Si crea aplicaciones que tratan con fechas con frecuencia, Moment.js es invaluable.

Moment.js proporciona las herramientas para administrar fechas, zonas horarias, períodos de tiempo (el período entre dos fechas), todo convenientemente envuelto en clases fáciles de usar. La documentación es excelente y simplifica el manejo de fechas al mismo tiempo que lo hace más confiable.

Encuéntralo en:

https://momentjs.com/

Por ejemplo, para agregar 3 días y 2 minutos a la fecha actual, usaría:

moment().add(7, 'days').add(2, 'minutes');

Lo cual es mucho más fácil de leer y menos propenso a errores que hacerlo en JavaScript estándar.