Přidat dny (nebo minuty nebo hodiny) k datu Javascriptu [nebo odečíst]

Tento článek vysvětlí, jak přidat (nebo odečíst ) dny, minuty, hodiny, sekundy (atd.) do data JavaScriptu.

Proč to chcete udělat? Možná chcete uživateli sdělit, že jeho úkol má být dokončen za týden, a uvést datum, nebo možná vaše aplikace potřebuje vědět, jaké bylo datum před 30 dny, aby se zobrazilo připomenutí – existuje téměř nekonečně mnoho případů použití.

Přidat dny k datu pomocí Vanilla JavaScript

Za prvé, zde je návod, jak se to dělá v obyčejném starém JavaScriptu:

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

Výsledné datum bude dnešní datum plus 4 dny, 3 hodiny2 minut a 1 za druhé.

Můžete zadat záporná čísla nebo použít operátor (odčítání) místo sčítání.

Přidat dny k datu pomocí Moment.js

Pokud vytváříte aplikace, které často pracují s daty, Moment.js je neocenitelný.

Moment.js poskytuje nástroje pro správu dat, časových pásem, časových období (období mezi dvěma daty) – to vše pohodlně zabaleno do snadno použitelných tříd. Dokumentace je skvělá a zjednodušuje práci s datem a zároveň je spolehlivější.

Najdete ho na:

https://momentjs.com/

Chcete-li například přidat 3 dny a 2 minuty k aktuálnímu datu, které byste použili:

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

Což je mnohem snazší číst a méně náchylné k chybám než to dělat ve vanilkovém JavaScriptu.