Руководство JavaScript Date
1. ECMAScript Date
Date является встроенным видом данных в языке Javascript. Он и есть класс, создающий объекты представляющие дату и время (Date & time).
Стандарт ECMAScript требует объект Date чтобы представить любую дату и время, точную до милисекунды, в течении 100 миллионов дней перед или после 1/1/1970. Это диапазон прибавления или вычитания 273785 лет, поэтому JavaScript может представить дату и время до 275755 года.
В информатие, 12 часов утра 1-го Января 1970 года это особенно время, оно используется для начала отсчета времени. Данное время называется epoch (Компьютерная эпоха).
Смотрите далее о понятии Locale.
- Khái niệm Locale trong khoa học máy tính
- Sử dụng Locale trong NodeJS
Смотрите так же список часовых поясов по странам:
2. Методы Date
getDate()
Метод getDate() возвращает день месяца объекта Date по текущему Locale. Точнее он возвращает целое число (integer) в диапазоне [1-31].
getDate-example.js
let date = new Date("December 25, 2017 23:15:00");
var day = date.getDate();
console.log(day); // 25
getDay()
Метод getDate() возвращает день недели объекта Date по текущему Locale. Точнее он возвращает целое число (integer) в диапазоне [0-6]. 0 соответствует воскресенью, 1 соответствует понедельнику, ...
getDay-example.js
let date = new Date("December 25, 2017 11:15:00");// Monday
var day = date.getDay();
console.log(day); // 1
getFullYear()
Метод getFullYear() возвраещает год (year) объекта Date по текущему Locale. Точнее он возвращает целое число, например 2017.
getFullYear-example.js
let date = new Date("December 25, 2017 11:15:00");// Monday
var year = date.getFullYear();
console.log(year); // 2017
getHours()
Метод getHours() возвращает время Date по текущему Locale. Точнее он возвращает целое число (integer) в диапазоне [0-23].
getHours-example.js
let date = new Date("December 25, 2017 22:10:00");
let hour = date.getHours();
console.log(hour); // 22
getMilliseconds()
Метод getMilliseconds() возвращает милисекунды объекта Date по текущему Locale. Точнее он возвращает целое число в диапазоне [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()
Метод getMinutes() возвращает минуты (minute) объекта Date по текущему Locale. Точнее он возвращает целое число в диапазоне [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()
Метод getMonth() возвращает месяц (month) объекта Date по текущему Locale. Точнее он возвращает целое число в диапазоне [0-11], 0 соответствует Январю (January), 1 соответствет Февралю (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()
Метод getSeconds() возвращает секунды (second) объекта Date по текущему Locale. Точнее он возвращает целое число в диапазоне [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()
Метод getTime() возвращает период времени в милисекундах от 01/01/1970 00:00:00:000 до времени представленный объектом 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()
Метод getTimezoneOffset() возвращает часовой пояс (по минутам) для текущего Locale.
Часовой пояс (time-zone) зависит от Locale (локала), например часовой пояс Вьетнама UTC+07:00. При это Россия имеет 11 часовых поясов по всей территории.
Ваш компьютер может выбрать любой Locale, тогда часы на компьютере отображают время по данному Locale. Метод getTimezoneOffset() возвращает часовой пояс соответствующий с Locale который вы используете.
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()
Метод getUTCDate() возвращает день месяца объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число (integer) в диапазоне [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()
Метод getUTCDay() возвращает день недели объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число (integer) в диапазоне [0-6]. 0 соответствует воскресенью, 1 соответствует понедельнику, ...
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()
Метод getUTCFullYear() возвращает год (year) объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число например 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()
Метод getHours() возвращает время объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число (integer) в диапазоне [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()
Метод getUTCMinutes() возвращает минуты (minute) объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число в диапазоне [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()
Метод getUTCMilliseconds() возвращает милисекунды объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число в диапазоне [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()
Метод getUTCMonth() возвращаем месяц (month) объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число в диапазоне [0-11], 0 соответствует Январю (January), 1 соотвествует Февралю (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()
Метод getUTCSeconds() возвращает секунды (second) объекта Date по Universal Time (Всемирному времени). Точнее он возвращает целое число в диапазоне [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)
Метод setDate(dayValue) настраивает значения дня месяца для объекта Date по текущему Locale. Параметром является целое число в диапазоне [1-31].
OK, Ситуация!! Например у вас есть объект Date представляющий дату 25/02/2017 (Февраль 2017 года имеет только 28 дней). Вы настраиваете значение31 для "день месяца" того объекта Date, что произойдет? В результате ваш объект Date представит 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]])
Метод setFullYear(...) настраивает значения года, месяца, дня для объекта Date по текущему Locale.
Параметры:
- yearValue: Целое число, например 2018.
- monthValue: Целое число в диапазоне [0-11], 0 соответствует Январю (January), 1 соответствет Февралю (February),...
- dayValue: Целое число в диапазоне [1-31], представляет дни месяца.
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])
Метод setMonth(...) настраивает значения месяца, дня для объекта Date по текущему Locale.
Параметры:
- monthValue: Целое число в диапазоне [0-11], 0 соответствует Январю (January), 1 соответствет Февралю (February),...
- dayValue: Целое число в диапазоне [1-31], представляет дни месяца.
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]]])
Метод setHours(..) настраивает значения часа, минуты, милисекунды объекту Date по текущему Locale.
Параметры:
- hoursValue: Целое число в диапазоне [0-23].
- minutesValue: Целое число в диапазоне [0-59].
- secondsValue: Целое число в диапазоне [0-59].
- msValue: Целое число в диапазоне [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]])
Метод setMinutes(..) настраивает значения минуты, секунды, милисекунды для объекта Date по текущему Locale.
Параметры:
- minutesValue: Целое число в диапазоне [0-59].
- secondsValue: Целое число в диапазоне [0-59].
- msValue: Целое число в диапазоне [0-999].
setSeconds(secondsValue[, msValue])
Метод setSeconds(..) настраивает значения секунды, милисекунды для объекта Date по текущему Locale.
Параметры:
- secondsValue: Целое число в диапазоне [0-59].
- msValue: Целое число в диапазоне [0-999].
setMilliseconds(millisecondsValue)
Метод setMilliseconds(msValue) настраивает значения милисекунды для объекта Date по текущему Locale. Параметром является целое число в диапазоне [0-999].
setTime(timeValue)
Метод setTime(timeValue) помогает объекту Date представить новое время, где timeValue является периодом времени расчитанным в милисекундах от 01/01/1970 00:00:00:000 до того времени.
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()
Метод toDateString() возвращает текст (String) представляющий дату (date) объекта Date, который читается человеком.
toDateString-example.js
let date = new Date( );
var str = date.toDateString();
console.log(str); // Thu Nov 29 2018
toTimeString()
Метод toTimeString() возвращает текст (String) представляющий время (time) объекта Date, который читается человеком.
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()
Метод toString() возвращает текст (String) представляющий объект Date, который читается человеком.
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()
Метод toUTCString() возвращает текст (String) представляющий объект Date по Universal Time, который читается человеком.
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])
Метод toLocaleDateString([locales][, options]) возвращает текст представляющий дату (date) объекта Date по Locale и опциям в параметре. Если не определить Locale в параметре, будет использован текущий Locale.
Пример с методом toLocaleDateString(..) работающим на браузере.
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])
Метод toLocaleTimeString([locales][, options]) возвращает текст представляющий время (time) объекта Date по Locale и опций в параметрах. Если не определить Locale в параметрах, используется текущий Locale.
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])
Метод toLocaleString([locales][, options]) возвращает текст представляющий объект Date по Locale и опиции в параметрах. Если не определить Locale в параметрах, используется текущий Locale.
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
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>
Примечание: Методы toLocaleDateString(..), toLocaleTimeString(..), toLocaleString(..) работают не как ожидается в среде NodeJS, эта проблема обсуждается на GitHub:
Pуководства ECMAScript, Javascript
- Введение в Javascript и ECMAScript
- Быстрый старт с Javascript
- Диалоговое окно Alert, Confirm, Prompt в Javascript
- Быстрый запуск с JavaScript
- Переменные (Variable) в JavaScript
- Битовые операции
- Массивы (Array) в JavaScript
- Циклы в JavaScript
- Руководство JavaScript Function
- Руководство JavaScript Number
- Руководство JavaScript Boolean
- Руководство JavaScript String
- Заявление if/else в JavaScript
- Заявление Switch в JavaScript
- Обработка ошибок в JavaScript
- Руководство JavaScript Date
- Руководство JavaScript Module
- Функция setTimeout и setInterval в JavaScript
- Руководство Javascript Form Validation
- Руководство JavaScript Web Cookie
- Ключевое слово void в JavaScript
- Классы и объекты в JavaScript
- Техника симулирования класса и наследственности в JavaScript
- Наследование и полиморфизм в JavaScript
- Понимание Duck Typing в JavaScript
- Руководство JavaScript Symbol
- Руководство JavaScript Set Collection
- Руководство JavaScript Map Collection
- Понимание JavaScript Iterable и Iterator
- Руководство Регулярное выражение JavaScript
- Руководство JavaScript Promise, Async Await
- Руководство Javascript Window
- Руководство Javascript Console
- Руководство Javascript Screen
- Руководство Javascript Navigator
- Руководство Javascript Geolocation API
- Руководство Javascript Location
- Руководство Javascript History API
- Руководство Javascript Statusbar
- Руководство Javascript Locationbar
- Руководство Javascript Scrollbars
- Руководство Javascript Menubar
- Руководство JavaScript JSON
- Обработка событий в Javascript
- Руководство Javascript MouseEvent
- Руководство Javascript WheelEvent
- Руководство Javascript KeyboardEvent
- Руководство Javascript FocusEvent
- Руководство Javascript InputEvent
- Руководство Javascript ChangeEvent
- Руководство Javascript DragEvent
- Руководство Javascript HashChangeEvent
- Руководство Javascript URL Encoding
- Руководство Javascript FileReader
- Руководство Javascript XMLHttpRequest
- Руководство Javascript Fetch API
- Разбор XML в Javascript с помощью DOMParser
- Введение в Javascript HTML5 Canvas API
- Выделение кода с помощью библиотеки Javascript SyntaxHighlighter
Show More