Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Date : méthode setDate()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode setDate() des instances de Date modifie le jour du mois pour cette date selon l'heure locale.

Exemple interactif

const event = new Date("August 19, 1975 23:15:30");

event.setDate(24);

console.log(event.getDate());
// Résultat attendu : 24

event.setDate(32);
// Seulement 31 jours en août !

console.log(event.getDate());
// Résultat attendu : 1

Syntaxe

js
setDate(dateValue)

Paramètres

dateValue

Un entier représentant le jour du mois.

Valeur de retour

Modifie l'objet Date en place et retourne son nouveau timestamp. Si dateValue vaut NaN (ou d'autres valeurs qui sont contraintes en NaN, comme undefined), la date est définie sur Date invalide et NaN est retourné.

Description

Si vous définissez un nombre en dehors de la plage attendue, les informations de date dans l'objet Date sont mises à jour en conséquence. Par exemple, si l'objet Date contient le 1er juin, une dateValue de 40 change la date au 10 juillet, tandis qu'une dateValue de 0 change la date au dernier jour du mois précédent, soit le 31 mai.

Comme setDate() fonctionne selon l'heure locale, franchir une transition d'heure d'été (DST) peut entraîner un temps écoulé différent de celui attendu. Par exemple, si le changement de date franchit une transition d'avance du printemps (perte d'une heure), la différence de timestamps entre la nouvelle et l'ancienne date est inférieure d'une heure à la différence nominale de jours multipliée par 24 heures. À l'inverse, franchir une transition de recul de l'automne (gain d'une heure) ajoute une heure supplémentaire. Si vous devez ajuster la date d'une durée fixe, envisagez d'utiliser setUTCDate() ou setTime().

Si la nouvelle heure locale tombe dans une transition de décalage, l'heure exacte est déterminée en utilisant le même comportement que l'option disambiguation: "compatible" de Temporal. C'est-à-dire, si l'heure locale correspond à deux instants, le plus tôt est choisi ; si l'heure locale n'existe pas (il y a un écart), on avance de la durée de l'écart.

Exemples

Utiliser la méthode setDate()

js
const leGrandJour = new Date(1962, 6, 7, 12); // midi du 7 juillet 1962 (le mois est indexé à partir de 0)
const leGrandJour2 = new Date(leGrandJour).setDate(24); // 1962-07-24 (24 juillet 1962)
const leGrandJour3 = new Date(leGrandJour).setDate(32); // 1962-08-01 (1er août 1962)
const leGrandJour4 = new Date(leGrandJour).setDate(22); // 1962-07-22 (22 juillet 1962)
const leGrandJour5 = new Date(leGrandJour).setDate(0); // 1962-06-30 (30 juin 1962)
const leGrandJour6 = new Date(leGrandJour).setDate(98); // 1962-10-06 (6 octobre 1962)
const leGrandJour7 = new Date(leGrandJour).setDate(-50); // 1962-05-11 (11 mai 1962)

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-date.prototype.setdate

Compatibilité des navigateurs

Voir aussi