Connaître la date et l'heure courante en Javascript

Février 2013

Pour connaitre la date et l'heure courante en Javascript (un peu comme la fonction time() de PHP, il faut utiliser l'objet Date :

var now = new Date();

Quand on créé un objet date avec aucun paramètre, l'objet est créé à la date courante, c'est aussi simple que ça !

Ensuite on peut obtenir toutes les infos que l'on souhaite grâce à cet objet now que nous venons de créer : le numéro du mois, l'année, le jour, l'heure... :

var annee   = now.getFullYear();
var mois    = now.getMonth() + 1;
var jour    = now.getDate();
var heure   = now.getHours();
var minute  = now.getMinutes();
var seconde = now.getSeconds();

alert( "Nous sommes le "+jour+"/"+mois+"/"+annee+" et il est "+heure+" heure "+minute+" minutes "+seconde+" secondes" );
// Résultat: Nous sommes le 2/11/2012 et il est 19 heure 57 minutes 37 secondes

Vous remarquerez que j'ai ajouté 1 à getMonth(). En effet, la fonction getMonth ne retourne pas le numéro de mois comme on à l'habitude de numéroter les mois (de 1 à 12), mais de 0 à 11. Il faut donc ajouter 1 pour avoir un résultat "human readable".

Cette page peut vous intéresser : types de graphiques excel à lire tout de suite !

Autre point : l'objet date retourne des nombres entiers. Ainsi il n'y a pas de zéro devant les numéros de jour, mois... à un chiffre. Pour avoir le numéro de mois sur 2 chiffres, on peut utiliser une petite astuce consistant à concaténer un 0 devant (en début de chaine), puis en tronquant l'ensemble à 2 caractères avec slice :

var now = new Date();

var annee   = now.getFullYear();
var mois    = ('0'+now.getMonth()+1).slice(-2);
var jour    = ('0'+now.getDate()   ).slice(-2);
var heure   = ('0'+now.getHours()  ).slice(-2);
var minute  = ('0'+now.getMinutes()).slice(-2);
var seconde = ('0'+now.getSeconds()).slice(-2);

alert( "Nous sommes le "+jour+"/"+mois+"/"+annee+" et il est "+heure+" heure "+minute+" minutes "+seconde+" secondes" );

Cette astuce marche aussi dans les expressions After Effects qui sont basées sur Javascript, cf : Créer un chronométre avec les expressions After Effects.

Fini de lire cette page ? allez faire un tour ici : texte 3d avec photoshop cs6, ça peut vous intéresser.

6 commentaires :
commentaire n°2791 par hugo
hugo mardi 8 avril 2014, 15:22
Salut, tout d'abord merci pour ce petit bout de code bien utile, mais je voulais te signaler une petite erreur sur cette ligne:

var mois = ('0'+(now.getMonth()+1)).slice(-2);

Il manquait juste des parenthèses pour (now.getMonth()+1) ;)
commentaire n°2800 par Galdon
Galdon mercredi 16 avril 2014, 23:22
Je viens de vérifier (dans la console Google Chrome 34) et ça fonctionne, je n'ai aucune erreur.
commentaire n°2819 par Lastminute
Lastminute jeudi 22 mai 2014, 04:07
Salut,
En effet il faut bien des parenthèses sinon il concatène.
commentaire n°3236 par tec
tec jeudi 28 janvier 2016, 21:43
Merci pour ce bout de code.
Comment faire pareil en Java?
commentaire n°3933 par arkad
arkad lundi 18 février 2019, 18:13
Bonjour j'ai essayé le code effectivement il concatène mais quand j'applique la correction de Hugo ça ne fonctionne plus comment faire
commentaire n°4868 par Arthur
Arthur jeudi 19 mars 2020, 16:45
il faut corriger par :
('0'+(now.getMonth()+1)).slice(-2);

Sinon le mois de mars (03) apparaît sous la forme de 21
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré