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 setHours()

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 setHours() des instances de Date modifie les heures, les minutes, les secondes et/ou les millisecondes pour cette date selon l'heure locale.

Exemple interactif

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

console.log(event);
// Résultat attendu : "Tue Aug 19 1975 20:15:30 GMT+0200 (CEST)"
// Remarque : votre fuseau horaire peut varier

event.setHours(20, 21, 22);

console.log(event);
// Résultat attendu : "Tue Aug 19 1975 20:21:22 GMT+0200 (CEST)"

Syntaxe

js
setHours(hoursValue)
setHours(hoursValue, minutesValue)
setHours(hoursValue, minutesValue, secondsValue)
setHours(hoursValue, minutesValue, secondsValue, msValue)

Paramètres

hoursValue

Un entier compris entre 0 et 23 représentant les heures.

minutesValue Facultatif

Un entier compris entre 0 et 59 représentant les minutes.

secondsValue Facultatif

Un entier compris entre 0 et 59 représentant les secondes. Si vous indiquez secondsValue, vous devez aussi indiquer minutesValue.

msValue Facultatif

Un entier compris entre 0 et 999 représentant les millisecondes. Si vous indiquez msValue, vous devez aussi indiquer minutesValue et secondsValue.

Valeur de retour

Modifie l'objet Date en place et retourne son nouveau timestamp. Si un paramètre 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 ne définissez pas les paramètres minutesValue, secondsValue et msValue, les mêmes valeurs que celles retournées par getMinutes(), getSeconds() et getMilliseconds() sont utilisées.

Si un paramètre que vous définissez est en dehors de la plage attendue, les autres paramètres et les informations de date dans l'objet Date sont mises à jour en conséquence. Par exemple, si vous définissez 100 pour secondsValue, les minutes sont incrémentées de 1 (minutesValue + 1), et 40 est utilisé pour les secondes.

Comme setHours() 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 d'heure 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 d'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 setUTCHours() 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 setHours()

js
const leGrandJour = new Date();
leGrandJour.setHours(7);

Spécifications

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

Compatibilité des navigateurs

Voir aussi