o7planning

ECMAScript Date Tutorial with Examples

View more Tutorials:

Follow us on our fanpages to receive notifications every time there are new articles. Facebook Twitter

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?
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: