Table Of Content

ECMAScript Date Tutorial

View more Tutorials:

1- ECMAScript Date

Date is a built-in data type in the Javascript language. It is a class to create objects that represent date & time.
The ECMAScript standard requires the Date object to be able to represent any date and time, to millisecond precision, within 100 million days before or after 1/1/1970. This is a range of plus or minus 273785 years, so JavaScript can represent date and time till the year 275755.
In computer science, 12:00 am on January 1st, 1970 is a special time. It is used to start counting time. This special time is called epoch (Computer Age).
See more about the concept of Locale.
  • TODO Link!
  • TODO Link!
See also the list of time zones by country:

2- Methods of Date

getDate()

The  getDate() method returns date of month of Date object in current  Locale. Specifically, it returns one integer ranging  [1-31].
getDate-example.js
let date = new Date("December 25, 2017 23:15:00");

var day = date.getDate();

console.log(day); // 25

getDay()

The  getDate() method returns the date of week of Date object in current  Locale, specifically, one integer ranging  [0-6]. 0 corresponds to Sunday, and 1 corresponds to Monday, ...
getDay-example.js
let date = new Date("December 25, 2017 11:15:00");// Monday

var day = date.getDay();

console.log(day); // 1

 

getFullYear()

The  getFullYear() method returns year of Date object in current  Locale. Specifically, it returns one integer, for example,  2017.

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

var year = date.getFullYear();

console.log(year); // 2017

getHours()

The  getHours() method returns the time of the Date object in current Locale. Specifically, it returns one integer ranging [0-23].
getHours-example.js
let date = new Date("December 25, 2017 22:10:00");

let hour = date.getHours();

console.log(hour); // 22

getMilliseconds()

The  getMilliseconds() method returns milisecond of the Date object in current  Locale. Specifically, it returns one integer ranging  [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()

The  getMinutes() method returns the minute of the Date object in current  Locale. Specifically, it returns one integer ranging [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()

The  getMonth() method returns the month of the Date object in current  Locale. Specifically, it returns one integer ranging [0-11]. 0 corresponds to January and  1 corresponds to 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()

The  getSeconds() method  returns the second of the Date object in current  Locale. Specifically, it returns one integer ranging [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()

The  getTime() method returns a period of time in miliseconds from  01/01/1970 00:00:00:000 to the time represented by the  Date object.
getTime-example.js
let now = new Date();

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

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

getTimezoneOffset()

The  getTimezoneOffset() method returns  time zone in minutes for current  Locale.
Time-zone depends on Locale. For example, the time zone of   Vietnam is  UTC+07:00 while the one of Russia is wide spreading 11 timezones.
Your computer can select any  Locale. Then the clock on the computer will display the time in this Locale. The getTimezoneOffset () method returns the time zone corresponding to the Locale which you are using.
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()

The getUTCDate () method returns the date of the month of the Date object by Universal Time. Specifically, it returns one integer from [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()

The  getUTCDay() method returns date of week of the Date object in  Universal Time, Specifically, one integer ranging  [0-6]. 0 corresponds to Sunday; 1 corresponds to Monday, ...
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()

The  getUTCFullYear() method returns the year of the  Date object in  Universal Time . In particular, it returns one integer, for example​​​​​​​  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()

The  getHours() method returns the time of the   Date object in  Universal Time.  Specifically, it returns one integer  ranging  [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()

The  getUTCMinutes() method returns the minute) of the   Date object in  Universal Time.  Specifically, it returns one integer  ranging​​​​​​​ [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()

The  getUTCMilliseconds() method returns the milisecond of the   Date object in  Universal Time.  Specifically, it returns one integer  ranging [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()

The  getUTCMonth() method returns the month of the   Date object in  Universal Time.  Specifically, it returns one integer  ranging   [0-11]. 0 corresponds to January and 1 corresponds to 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()

The  getUTCSeconds() method returns second of the   Date object in  Universal Time.  Specifically, it returns one integer  ranging​​​​​​​ [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)

The  setDate(dayValue) method sets the date value of a month for the  Date object in current  Locale. The parameter is an integer ranging  [1-31].
Okay, One situation!! Suppose you have a Date object that represents 25/02/2017 (February  in 2017 has only 28 days). You set value 31 for "date of month" of that Date object. What will happen? The result is that  your Date object will represent March 3st, 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]])   

The  setFullYear(...) method sets year, month, date values for the Date object in current  Locale.
Parameters:
  • yearValue: One integer, for example 2018.
  • monthValue: One integer ranging [0-11], 0 corresponds to January, 1 corresponds to February,...
  • dayValue: One integer ranging [1-31], representing date of a month.
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]) 

The  setMonth(...) method sets month, date values for the  Date object in current  Locale.
Parameters:
  • monthValue: One integer ranging [0-11], 0 corresponds to January, 1 corresponds to February,...
  • dayValue: One integer ranging [1-31], representing date of month.
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]]]) 

The  setHours(..) metho sets time, minute, second, milisecon values for the Date object in current  Locale.
Parameters:
  • hoursValue: An integer ranging [0-23].
  • minutesValue: An integer ranging [0-59].
  • secondsValue: An integer ranging [0-59].
  • msValue: An integer ranging​​​​​​​ [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]])

The  setMinutes(..) method sets minute, second, milisecond values for the  Date object in current  Locale.
Parameters:
  • minutesValue: An integer within [0-59].
  • secondsValue: An integer within  [0-59].
  • msValue: An integer within ​​​​​​​ [0-999].

setSeconds(secondsValue[, msValue])

The  setSeconds(..) method sets second values, milisecon values for the Date object in current  Locale .
Parameters:
  • secondsValue: An integer within [0-59].
  • msValue: An integer within​​​​​​​ [0-999].

setMilliseconds(millisecondsValue)

The  setMilliseconds(msValue) method sets milisecond value for the  Date object in current  Locale. The parameter is an integer within  [0-999].

setTime(timeValue)

The  setTime(timeValue) method helps   Date represent for a new time while  timeValue is a period of time calculated in miliseconds from  01/01/1970 00:00:00:000 to such time.
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()

The  toDateString() method returns a string representing date of the Date object that people can read.
toDateString-example.js
let date = new Date( );

var str = date.toDateString();

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

toTimeString()

The  toTimeString() method returns a string  representing the time of the Date object, which people can read.
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()

The  toString() method returns a string representing the Date object, which people can read.
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()

The  toUTCString() method returns a string representing the Date object in  Universal Time, which people can read.
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])

The  toLocaleDateString([locales][, options]) method returns a string representing the date of the Date object in  Locale and the options in parameters. In case of not specifying  Locale in parameters, current  Locale will be used.
An example with the  toLocaleDateString(..) method running on browser.
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])

The  toLocaleTimeString([locales][, options]) method retusns a string representing time of the Date object in Locale and options in parameters. In case of not specifying  Locale in parameters, current  Locale will be used.
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])

The  toLocaleString([locales][, options]) method retusns a string representing time of the Date object in Locale and options in parameters. In case of not specifying  Locale in parameters, current  Locale will be used.
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>
Note: The  toLocaleDateString(..)toLocaleTimeString(..)toLocaleString(..) methods operate not as expected on the NodeJS environment, this issue was discussed on GitHub:

View more Tutorials: