Ajout d'un mois à une date
Bonjour,
J'essaye d'ajouter un mois à une date mais j'ai un fonctionnement étrange pour lequel je n'arrive pas à trouver de solution.
La date en question est le 2 mars 2023. j'ai recherché des fonctions que je vous liste ci-dessous pour le faire mais elles me renvoient toutes un mois en plus moins une heure ou deux.
Le résultat devrait être 2023-04-02T00:00:00.000Z mais j'ai à chaque fois 2023-04-01T23:00:00.000Z ou 2023-04-01T22:00:00.000Z
Ce qui est étrange est que si je prend une date en avril ou mai cela fonctionne.
Je suis un peu perdu, si quelqu'un arrive à m'éclairer sur un problème qui doit être tout simple ?
Voici le code ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| function addMonths(date, months) {
return new Date(date.setMonth(date.getMonth() + months));
}
function addMonthsToDate(_date,_noOfMonths)
{
var yearFromDate = _date.getFullYear();
var monthFromYear = _date.getMonth();
var dayFromYear = _date.getDate();
var newDate = new Date(yearFromDate, monthFromYear + _noOfMonths, dayFromYear);
return newDate;
}
function addMonths2(date, months) {
const dateCopy = new Date(date);
dateCopy.setMonth(dateCopy.getMonth() + months);
return dateCopy;
}
let testDate = new Date("2023-03-02");
console.log(testDate);
console.log("------");
console.log(testDate);
const result3 = addMonths2(testDate, 1);
console.log(result3);
console.log("------");
console.log(testDate);
const result1 = addMonths(testDate,1);
console.log(result1);
const result2 = addMonthsToDate(testDate,1);
console.log("------");
console.log(testDate);
console.log(result2); |
Le résultat donne :
Code:
1 2 3 4 5 6 7 8 9 10
| 2023-03-02T00:00:00.000Z
------
2023-03-02T00:00:00.000Z
2023-04-01T23:00:00.000Z
------
2023-03-02T00:00:00.000Z
2023-04-01T23:00:00.000Z
------
2023-04-01T23:00:00.000Z
2023-05-01T22:00:00.000Z |