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 :
Le résultat donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager