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

Susan Sarandon
Libérer: 2024-10-28 09:44:29
original
232 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal