Maison  >  Article  >  développement back-end  >  Comment ajouter avec précision des mois à une date en JavaScript ?

Comment ajouter avec précision des mois à une date en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 09:44:29183parcourir

How to Accurately Add Months to a Date in JavaScript?

Ajout de mois à une date en JavaScript

Dans ce fil de discussion, un développeur demande de l'aide pour ajouter deux mois à une date de fin fournie par l'utilisateur.

Pour y parvenir, une fonction personnalisée appelée addMonths() est recommandée :

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

Cependant, cette approche simple se heurte à une limite. Par exemple, ajouter un mois au 31 juillet donnerait le 1er octobre au lieu du 30 septembre. Pour résoudre ce problème, une fonction plus nuancée peut être utilisée :

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

Cette fonction maintient la règle de fin de mois en réinitialisant la date au dernier jour du mois précédent si le mois modifié est incorrect. .

Comme alternative plus simple, une fonction avec un contrôle de roulement de mois simplifié peut être utilisée :

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

Cette approche garantit également que le comportement de fin de mois est préservé tout en fournissant une mise en œuvre simplifiée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn