Heim > Backend-Entwicklung > PHP-Tutorial > Wie fügt man in JavaScript genau Monate zu einem Datum hinzu?

Wie fügt man in JavaScript genau Monate zu einem Datum hinzu?

Susan Sarandon
Freigeben: 2024-10-28 09:44:29
Original
261 Leute haben es durchsucht

How to Accurately Add Months to a Date in JavaScript?

Hinzufügen von Monaten zu einem Datum in JavaScript

In diesem Thread sucht ein Entwickler nach Hilfe beim Hinzufügen von zwei Monaten zu einem vom Benutzer bereitgestellten Enddatum.

Um dies zu erreichen, wird eine benutzerdefinierte Funktion namens addMonths() empfohlen:

<code class="js">function addMonths(dateObj, num) {
  return dateObj.setMonth(dateObj.getMonth() + num);
}</code>
Nach dem Login kopieren

Dieser unkomplizierte Ansatz stößt jedoch auf eine Einschränkung. Würde man zum Beispiel einen Monat zum 31. Juli hinzufügen, ergäbe sich der 1. Oktober statt des 30. Septembers. Um dieses Problem zu lösen, kann eine differenziertere Funktion eingesetzt werden:

<code class="js">function addMonths(dateObj, num) {
  var currentMonth = dateObj.getMonth() + dateObj.getFullYear() * 12;
  dateObj.setMonth(dateObj.getMonth() + num);
  var diff = dateObj.getMonth() + dateObj.getFullYear() * 12 - currentMonth;

  if (diff != num) {
    dateObj.setDate(0);
  }

  return dateObj;
}</code>
Nach dem Login kopieren

Diese Funktion behält die Monatsendregel bei, indem sie das Datum auf den letzten Tag des Vormonats zurücksetzt, wenn der geänderte Monat falsch ist .

Als einfachere Alternative kann eine Funktion mit einer optimierten Monats-Rollover-Prüfung verwendet werden:

<code class="js">function addMonths(date, months) {
  var d = date.getDate();
  date.setMonth(date.getMonth() + +months);
  if (date.getDate() != d) {
    date.setDate(0);
  }
  return date;
}</code>
Nach dem Login kopieren

Dieser Ansatz stellt auch sicher, dass das Verhalten am Monatsende erhalten bleibt Bereitstellung einer vereinfachten Implementierung.

Das obige ist der detaillierte Inhalt vonWie fügt man in JavaScript genau Monate zu einem Datum hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage