Дата (Объект Date)

JavaScript объект Date позволяет работать с датами.

По умолчанию, JavaScript будет использовать временную зону браузера и отображать дату в виде полной текстовой строки: "Wed Oct 24 2018 10:48:26 GMT+0300".

Создание объектов Date

Объект Date создается при помощи конструктора new Date().

Существует 4 способа создания нового объекта даты:


new Date()
new Date(год, месяц, день, часы, минуты, секунды, миллисекунды)
new Date(миллисекунды)
new Date(строка даты)

new Date()

Конструктор new Date() создает новый объект даты с текущими датой и временем:


var d = new Date();

Внимание! Объект Date статичен. Время на компьютере продолжает идти, но объект даты не изменяется.

new Date(год, месяц, ...)

Конструктор new Date(год, месяц, ...) создает новый объект даты с заданными датой и временем.

7 числовых параметров определяют год, месяц, день, часы, минуты, секунды, миллисекунды (именно в таком порядке):


var d = new Date(2018, 11, 24, 10, 33, 30, 0); 

Внимание! В JavaScript нумерация месяцев идет от 0 до 11. Январь - 0. Декабрь - 11.

6 числовых параметров определяют год, месяц, день, часы, минуты, секунды:


var d = new Date(2018, 11, 24, 10, 33, 30);

5 числовых параметров определяют год, месяц, день, часы, минуты:


var d = new Date(2018, 11, 24, 10, 33);

4 числовых параметров определяют год, месяц, день, часы:


var d = new Date(2018, 11, 24, 10);

3 числовых параметра определяют год, месяц, день:


var d = new Date(2018, 11, 24);

2 числовых параметра определяют год, месяц:


var d = new Date(2018, 11);

Внимание! Нельзя опускать параметр месяца. Если задается один параметр, то он будет интерпретироваться как миллисекунды.


var d = new Date(2018);

Предыдущий век

Если год указан в виде одной или двух цифр, то он интерпретируется как 19xx:


var d1 = new Date(99, 11, 24);

var d2 = new Date(9, 11, 24);

new Date(строка даты)

Конструктор new Date(строка даты) создает новый объект даты по специальной текстовой строке:


var d = new Date("October 13, 2014 11:13:00"); 

О строке даты будет рассказано в следующей главе.

JavaScript хранит дату в миллисекундах

JavaScript хранит даты в виде количества миллисекунд, прошедших с 1 января 1970, 00:00:00 UTC (универсальные координаты времени).

Нулевая дата — это 1 января 1970 00:00:00 UTC.

Сейчас у нас 1540367306081 миллисекунд с 1 января 1970.

new Date(миллисекунды)

Конструктор new Date(миллисекунды) создает новый объект даты как нулевая дата плюс количество заданных миллисекунд:


var d = new Date(0); 

1 января 1970 плюс 100 000 000 000 миллисекунд даст 3 марта 1973:


var d = new Date(100000000000); 

1 января 1970 минус 100 000 000 000 миллисекунд даст 31 октября 1966:


var d = new Date(-100000000000); 

В сутках (24 часа) 86 400 000 миллисекунд.

Методы объекта Date

Когда объект Date создан, вы можете оперировать им при помощи его методов.

Методы объекта Date позволяют получать и устанавливать год, месяц, день, час, минуты, секунды и миллисекунды в объекте даты, используя как локальное время, так и UTC или GMT.

Методы объекта Date будут описаны в следующих главах.

Отображение даты

По умолчанию, JavaScript будет отображать дату в формате полной текстовой строки: Wed Mar 25 2015 03:00:00 GMT+0300.

Когда вы выводите объект даты в HTML, он автоматически преобразуется в строку при помощи метода toString().

Пример:


d = new Date();
document.getElementById("demo").innerHTML = d;

То же самое:


d = new Date();
document.getElementById("demo").innerHTML = d.toString(); 

Метод toUTCString() преобразует дату в строку UTC (стандарт отображения даты).


var d = new Date();
document.getElementById("demo").innerHTML = d.toUTCString(); 

Метод toDateString() преобразует дату в более читабельный формат:


var d = new Date();
document.getElementById("demo").innerHTML = d.toDateString();