880 Stimmen

Wie subtrahiert man Tage von einem einfachen Datum?

Gibt es eine einfache Möglichkeit, ein olain JavaScript aufzunehmen? Date (z. B. heute) und X Tage zurückgehen?

Wenn ich also zum Beispiel das Datum 5 Tage vor dem heutigen Tag berechnen möchte.

2voto

Malvi Panchal Punkte 33

Ich habe eine Funktion zur Datumsmanipulation erstellt. Sie können eine beliebige Anzahl von Tagen, Stunden und Minuten addieren oder subtrahieren.

function dateManipulation(date, days, hrs, mins, operator) {
   date = new Date(date);
   if (operator == "-") {
      var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
      var newDate = new Date(date.getTime() - durationInMs);
   } else {
      var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
      var newDate = new Date(date.getTime() + durationInMs);
   }
   return newDate;
 }

Rufen Sie nun diese Funktion durch Übergabe von Parametern auf. Zum Beispiel ist hier ein Funktionsaufruf, um das Datum vor 3 Tagen von heute zu erhalten.

var today = new Date();
var newDate = dateManipulation(today, 3, 0, 0, "-");

1voto

vdegenne Punkte 9972

Moderne JavaScript-Funktionssyntax verwenden

const getDaysPastDate = (daysBefore, date = new Date) => new Date(date - (1000 * 60 * 60 * 24 * daysBefore));

console.log(getDaysPastDate(1)); // yesterday

1voto

ScottE Punkte 31

Mir gefällt das Folgende, weil es nur eine Zeile ist. Nicht perfekt mit DST Änderungen, aber in der Regel gut genug für meine Bedürfnisse.

var fiveDaysAgo = new Date(new Date() - (1000*60*60*24*5));

1voto

Kishore Avineni Punkte 59

Die oberen Antworten führten zu einem Fehler in meinem Code, bei dem am Ersten des Monats ein zukünftiges Datum im aktuellen Monat gesetzt wurde. Hier ist, was ich tat,

curDate = new Date(); // Took current date as an example
prvDate = new Date(0); // Date set to epoch 0
prvDate.setUTCMilliseconds((curDate - (5 * 24 * 60 * 60 * 1000))); //Set epoch time

0voto

pritesh agrawal Punkte 1035

Für mich alle Kombinationen funktionierte gut mit unten Code Snipplet, Das Snippet ist für Angular-2 Implementierung, Wenn Sie Tage hinzufügen müssen, übergeben Sie positive numberofDays , wenn Sie subtrahieren müssen, übergeben Sie negative numberofDays

function addSubstractDays(date: Date, numberofDays: number): Date {
let d = new Date(date);
return new Date(
    d.getFullYear(),
    d.getMonth(),
    (d.getDate() + numberofDays)
);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X