devstory

Le Tutoriel de ECMAScript Date

1- ECMAScript Date

Date est un type de données qui est contruit dans le langage Javascript. Il est une classe pour créer des objets qui représente la date et le temps (Date & time).
Le standard ECMAScript requérit Date qu'elle puisse représent n'importe quelle date et quel temps, avec une précision de quelques millisecondes, dans un délai de 100 millions de jours avant ou après le 1/1/1970. Il s’agit d’un champ de plus ou moins 273785 ans, donc JavaScript peut représenter la date et l’heure jusqu’à l’année​​​​​​​ 275755.
En informatique, 12h le 1er janvier 1970 est un moment privilégié. Il est utilisé pour commencer à compter le temps. Ce temps spécial s'appelle epoch (Computer Age).
Voir plus sur le concept de Locale.
Voir aussi la liste des fuseaux horaires par pays :

2- Les méthodes de Date

getDate()

La méthode getDate() renvoie la date du mois de l'objet Date de Locale présent. Particulièrement, elle renvoie une nombre entier (integer) qui se trouve dans le champ [1-31].
getDate-example.js

let date = new Date("December 25, 2017 23:15:00");

var day = date.getDate();

console.log(day); // 25

getDay()

La méthode getDate() renvoie la date de la semaine du l'objet Date par Locale présent. Plus précisément, elle renvoie un nombre entier (integer) situé dans le champ [0-6]. 0 correspond à dimanche, 1 correspond à lundi, ...
getDay-example.js

let date = new Date("December 25, 2017 11:15:00");// Monday

var day = date.getDay();

console.log(day); // 1

 

getFullYear()

La méthode getFullYear() renvoie l'année (year) de l'objet Date par Locale présent. Spécialement, elle renvoie un nombre entier, par exemple 2017.

getFullYear-example.js
let date = new Date("December 25, 2017 11:15:00");// Monday

var year = date.getFullYear();

console.log(year); // 2017

getHours()

La méthode getHours() renvoie l'heure de l'obet Date par son Locale présent. Elle renvoie un nombre entier (integer) qui se trouve dans le champ [0-23].
getHours-example.js
let date = new Date("December 25, 2017 22:10:00");

let hour = date.getHours();

console.log(hour); // 22

getMilliseconds()

La méthode getMilliseconds() renvoie mili second de l'objet Date par Locale présent. Spécialement, elle renvoie un nombre entier (integer) qui se trouve dans le champ [0-999].
getMilliseconds-example.js
let now = new Date();

console.log(now);// Ex: 2018-11-25T05:52:20.490Z

console.log("getMilliseconds() : " + now.getMilliseconds()); // 490

getMinutes()

La méthode getMinutes() renvoie (minute) de l'objet Date par Locale présent. Spécialement, elle renvoie un nombre entier (integer) qui se trouve dans le champ​​​​​​​ [0-59].
getMinutes-example.js
let now = new Date();

console.log(now);// Ex: 2018-11-25T05:58:20.178Z

console.log("getMinutes() : " + now.getMinutes()); // 58

getMonth()

La méthode getMonth() renvoie le mois (month) de l'objet Date par Locale présent. Spécialement, elle renvoie un nombre entier (integer) qui se trouve dans le champ [0-11], 0 correspond au janvier (January), 1 correspond au février (February),..
getMonth-example.js
let now = new Date();

console.log(now);// Ex: 2018-11-25T05:58:20.178Z

let month = now.getMonth(); // 10

console.log(month); // 10
 

getSeconds()

La méthode getSeconds() renvoie la seconde (second) de l'objet Date par Locale présent. Spécialement, elle renvoie un nombre entier (integer) qui se trouve dans le champ​​​​​​​ [0-59].
getSeconds-example.js
let now = new Date();

console.log(now);// Ex: 2018-11-25T06:06:24.211Z

console.log("getSeconds() : " + now.getSeconds()); // 24

getTime()

La méthode getTime() renvoie un période de temps en mili secondes de 01/01/1970 00:00:00:000 jusqu'à heure qui représente par l'objet Date.
getTime-example.js
let now = new Date();

console.log(now);// Ex: 2018-11-25T06:14:59.213Z

console.log("getTime() : " + now.getTime()); // 1543126499213
 

getTimezoneOffset()

La méthode getTimezoneOffset() renvoie le fuseau horaire (compté par minute) pour Locale présent.
Le fuseau horaire (time-zone) dépend au Locale, par exemple, le fuseau horaire du Vietnam est UTC+07:00 tandis que celui de la Russie s'étend largement sur 11 fuseaux horaires.
Votre ordinateur peut sélectionner n’importe quel paramètre Locale. Ensuite, l'horloge de l'ordinateur affichera l'heure dans ces paramètres Locale. La méthode getTimezoneOffset() renvoie le fuseau horaire correspondant au paramètre Locale que vous utilisez.
getTimezoneOffset:
  • Vietnam: UTC+07:00 ==> -420
  • Japan: UTC+09:00 ==> -540
getTimezoneOffset-example.js
// Vietnam: UTC+07:00
let now = new Date();

let timezoneOffset = now.getTimezoneOffset();

console.log(timezoneOffset); // -420

 

getUTCDate()

La méthode getUTCDate() renvoie le mois de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer) de [1-31].
getUTCDate-example.js
// This example test in Locale: Vietnam UTC+7:00

let date = new Date("December 25, 2017 01:15:00");

let day = date.getDate();

console.log(day); // 25  (Test in Vietnam UTC+7:00)

let utcDay = date.getUTCDate();

console.log(utcDay); // 24  (UTC)
 

getUTCDay()

La méthode getUTCDay() renvoie la date de la semaine de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer) de [0-6]. 0 correspond au dimanche, 1 correspond au lundi, ...
getUTCDay-example.js
// This example test in Locale: Vietnam UTC+7:00

let date = new Date("December 25, 2017 01:15:00"); // Monday

let day = date.getDay();

console.log(day); // 1


let utcDay = date.getUTCDay();

console.log(utcDay); // 0

getUTCFullYear()

Phương thức getUTCFullYear() renvoie l'année (year) de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer), par exemple 2017.
getUTCFullYear-example.js
// This example test in Locale: Vietnam UTC+7:00

let date = new Date("January 01, 2019 01:15:00");

var year = date.getFullYear();

console.log(year); // 2019


var utcYear = date.getUTCFullYear();

console.log(utcYear); // 2018
 

getUTCHours()

La méthode getHours() renvoie l'heure de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer) de​​​​​​​ [0-23].
getUTCHours-example.js
// This example test in Locale: Vietnam UTC+7:00

let now = new Date();

console.log(now);// Ex: 2018-11-25T07:29:59.575Z

let hour = now.getHours();

console.log(hour); // 14


let utcHour = now.getUTCHours();  

console.log(utcHour); // 7

getUTCMinutes()

Phương thức getUTCMinutes() renvoie la minute de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer) de [0-59].
getUTCMinutes-example.js
// This example test in Locale: Vietnam UTC+7:00

let now = new Date();

console.log(now);// Ex: 2018-11-25T07:35:06.442Z

console.log("getUTCMinutes() : " + now.getUTCMinutes()); // 35

getUTCMilliseconds()

La méthode getUTCMilliseconds() renvoie mili seconde de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer) de [0-999].
getUTCMilliseconds-example.js
// This example test in Locale: Vietnam UTC+7:00

let now = new Date();

console.log(now);// Ex: 2018-11-25T07:39:03.222Z

console.log("getUTCMilliseconds() : " + now.getUTCMilliseconds()); // 222

getUTCMonth()

La méthode getUTCMonth() renvoie le mois (month) de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer) de [0-11], 0 correspond au janvier (January), 1 correspond au février (February),..
getUTCMonth-example.js
// This example test in Locale: Vietnam UTC+7:00

let date = new Date("January 01, 2019 01:15:00");

console.log(date);// 2018-12-31T18:15:00.000Z

// January 2019 (Vietnam)
let month = date.getMonth(); // 0

console.log(month); // 0

// December 2018 (UTC)
let utcMonth = date.getUTCMonth(); // 11

console.log(utcMonth); // 11

getUTCSeconds()

La méthode getUTCSeconds() renvoie la seconde de l'objet Date par Universal Time (Temps Universel). Spécifiquement, il retourne un entier (integer) de [0-59].
getUTCSeconds-example.js
// This example test in Locale: Vietnam UTC+7:00

let now = new Date();

console.log(now);// Ex: 2018-11-25T06:06:24.211Z

console.log("getUTCSeconds() : " + now.getUTCSeconds()); // 24

setDate(dayValue)

La méthode setDate(dayValue) définit la valeur de date d'un mois de l'objet Date par Locale présent. Spécifiquement, il retourne un entier (integer) de [1-31].
OK, une situation!! Supposons que vous avez un objet Date qui représente 25/02/2017 (Le mois de février 2017 n'a que 28 jours). Vous définit la valeur 31 pour "jour du mois" de cet objet Date là, qu'est-ce qu'il se passe? Le résultat est que votre objet Date représentera le jour 03/03/2017.
setDate-example.js

let date = new Date("February 25, 2017 23:15:00"); // 25/02/2017

date.setDate(18);

console.log(date); // 2017-02-18T16:15:00.000Z

// ??
date.setDate(31);

console.log(date); // 2017-03-03T16:15:00.000Z
 

setFullYear(yearValue[, monthValue[, dayValue]])   

La méthode setFullYear(...) définit des valeur de l'année, du mois de l'objet Date par le Locale courant.
Des paramètres :
  • yearValue: Un nombre entier, par exemple 2018.
  • monthValue: Un nombre entier dans la rangée [0-11], 0 correspond au janvier (January), 1 correspond au février (February),...
  • dayValue: Un nombre entier dans la rangée [1-31], représente le jour du mois.
setFullYear-example.js

let date = new Date();

console.log(date);// Ex: 2017-02-25T16:15:00.000Z

date.setFullYear(2015, 3, 19);

console.log(date); // 2018-12-19T16:15:00.000Z


date.setFullYear(2014, 10);

console.log(date); // 2018-12-25T16:15:00.000Z


date.setFullYear(2013);

console.log(date); // 2019-12-25T16:15:00.000Z

setMonth(monthValue[, dayValue]) 

La méthode setMonth(...) définit les valeurs du mois, du jour de l'objet Date par Locale présent.
Des paramètres :
  • monthValue: Un nombre entier dans le champs [0-11], 0 correspond au janvier (January), 1 correspond au février (February),...
  • dayValue: Un nombre entier dans le champs [1-31], représente le jour du mois
setMonth-example.js
let date = new Date();

console.log(date);// Ex: 2018-11-25T17:42:01.751Z

date.setMonth(3, 19);// Month, day of month

console.log(date); // 2018-04-18T17:42:01.751Z


date.setMonth(10); // Month

console.log(date); // 2018-11-18T17:42:01.751Z

setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]]) 

La méthode setHours(..) définit les valeur de temps, de minute, de miliseconde de l'objet Date par Locale présent.
Des paramètres :
  • hoursValue: Un nombre entier allant de [0-23].
  • minutesValue: Un nombre entier allant de [0-59].
  • secondsValue: Un nombre entier allant de [0-59].
  • msValue: Un nombre entier allant de​​​​​​​ [0-999].
setHours-example.js
let date = new Date();

console.log(date);// Ex: 2018-11-25T17:36:18.955Z

date.setHours(22, 11, 03, 555); // hours, minutes, seconds, milliseconds

console.log(date); // 2018-11-26T15:11:03.555Z


date.setHours(13, 10);// hours, minutes

console.log(date); // 2018-11-26T06:10:03.555Z

setMinutes(minutesValue[, secondsValue[, msValue]])

La méthode setMinutes(..) définit les valeurs minute, seconde et milliseconde de l’objet Date dans les paramètres Locale courant.
Des paramètres :
  • minutesValue: Un nombre entier dans le champs de [0-59].
  • secondsValue: Un nombre entier dans le champs de [0-59].
  • msValue: Un nombre entier dans le champs de​​​​​​​ [0-999].

setSeconds(secondsValue[, msValue])

La méthode setSeconds(..) définit les valeurs seconde et milliseconde de l’objet Date dans les paramètres Locale courant.
Des paramètres :
  • secondsValue: Un nombre entier allant de [0-59].
  • msValue: Un nombre entier allant de [0-999].

setMilliseconds(millisecondsValue)

La méthode setMilliseconds(msValue) définit les valeurs milliseconde de l’objet Date dans les paramètres Locale courant. Le paramètre est un entier compris entre [0-999].

setTime(timeValue)

La méthode setTime(timeValue) permet au Date de représenter une nouvelle heure alors que timeValue est une période calculée en millisecondes à partir du 01/01/1970 00:00:00:000 jusqu'à cette heure.
setTime-example.js
var date = new Date( "Aug 28, 2008 23:30:00" );

date.setTime( 5000000 );
console.log( date ); // 1970-01-01T01:23:20.000Z

toDateString()

La méthode toDateString() renvoie une chaine (String) qui représente la date de l'objet Date que les gens peuvent lire.
toDateString-example.js

let date = new Date( );

var str = date.toDateString();

console.log(str); // Thu Nov 29 2018

toTimeString()

La méthode toTimeString() renvoie la chaine (String) qui représente le temps (time) de l'objet Date, que les gens peuvent lire.
toTimeString-example.js

var dateobject = new Date(1993, 6, 28, 14, 39, 7);

console.log( dateobject.toTimeString() ); // 14:39:07 GMT+0700 (GMT+07:00)

toString()

La méthode toString() renvoie la chaine (String) qui représente le temps (time) de l'objet Date, que les gens peuvent lire.
toString-example.js
// This example test in Locale: Vietnam UTC+7:00

var dateobject = new Date(1993, 6, 28, 14, 39, 7);

console.log( dateobject.toString() ); // Wed Jul 28 1993 14:39:07 GMT+0700 (GMT+07:00)

toUTCString()

La méthode toUTCString() renvoie la chaine (String) qui représente le temps (time) de l'objet Date par Universal Time, que les gens peuvent lire.
toUTCString-example.js
// This example test in Locale: Vietnam UTC+7:00

var dateobject = new Date(1993, 6, 28, 14, 39, 7);

console.log( dateobject.toString() ); // Wed Jul 28 1993 14:39:07 GMT+0700 (GMT+07:00)

console.log( dateobject.toUTCString() ); // Wed, 28 Jul 1993 07:39:07 GMT

toLocaleDateString( [locales][, options])

La méthode toLocaleDateString([locales][, options]) renvoie la chaine (String) qui représente le temps (time) de l'objet Date par des Locale et par les options dans des paramètres. Dans le cas où vous ne précisez pas Locale dans des paramètres, Locale courant sera utilisé.
Un exemple avec la méthode toLocaleDateString(..) exécute sur le navigateur.
toLocaleDateString-example.html
<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>toLocaleDateString()</title>
      <script>
         var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

         var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };

         console.log(date.toLocaleDateString('de-DE', options));
         // expected output: Donnerstag, 20. Dezember 2012

         console.log(date.toLocaleDateString('ar-EG', options));
         // expected output: الخميس، ٢٠ ديسمبر، ٢٠١٢

         console.log(date.toLocaleDateString('ko-KR', options));
         // expected output: 2012년 12월 20일 목요일
      </script>
   </head>
   <body>
      Show informations in the Console.
   </body>
</html>

toLocaleTimeString( [locales][, options])

La méthode toLocaleTimeString([locales][, options]) renvoie une une chaîne représentant l'heure (time) de l'objet Date dans les paramètres Locale et les options dans des paramètres. Si vous ne spécifiez pas les paramètres Locale dans des paramètres, les paramètres Locale actuels seront utilisés.
toLocaleTimeString-example.html
<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">

      <title>toLocaleTimeString()</title>
      <script>
         var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

         var options = {} // {hour: "2-digit", minute: "2-digit", second: "2-digit"}

         console.log(date.toLocaleTimeString('de-DE', options));
         // expected output: 10:00:00

         console.log(date.toLocaleTimeString('ar-EG', options));
         // expected output: ١٠:٠٠:٠٠ ص

         console.log(date.toLocaleTimeString('ko-KR', options));
         // expected output: 오전 10:00:00
      </script>
   </head>
   <body>
      Show informations in the Console.
   </body>
</html>

toLocaleString( [locales][, options])

La méthode toLocaleString([locales][, options]) renvoie une une chaîne représentant l'heure (time) de l'objet Date dans des paramètres Locale et les options dans des paramètres. Si vous ne spécifiez pas les paramètres Locale dans des paramètres, les paramètres Locale actuels seront utilisés.
toLocaleString-example.html
<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">

      <title>toLocaleString()</title>
      <script>
         var date = new Date(Date.UTC(2012, 11, 20, 3, 20, 59));

         //  { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric',
         //     hour: "2-digit", minute: "2-digit", second: "2-digit"}
         var options = {}; // Default options

         console.log(date.toLocaleString('de-DE', options));
         // expected output: 20.12.2012, 10:20:59

         console.log(date.toLocaleString('ar-EG', options));
         // expected output: ٢٠‏/١٢‏/٢٠١٢ ١٠:٢٠:٥٩ ص

         console.log(date.toLocaleString('ko-KR', options));
         // expected output: 2012. 12. 20. 오전 10:20:59
      </script>
   </head>
   <body>
      Show informations in the Console.
   </body>
</html>
Remarque : Les méthodes toLocaleDateString(..)toLocaleTimeString(..)toLocaleString(..) ne fonctionnent pas comme prévu sur l'environnement NodeJS, cette question a été discutée sur GitHub :
Peut-être que vous êtes intéressé

Voici des leçons en ligne à part du site web o7planning que nous recommandons. La liste comprend des leçons en ligne et celles en promo.