Объект Date в JavaScript
Объект-конструктор Date
используется для создания объекта времени. Используя объект класса Date
, можно задать любое время или получить текущее для данного момента выполнения скрипта. Время можно представить в различных форматах, но для JavaScript время - это количество миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу (время зарождения эпохи Unix).
Конструктор Date
имеет несколько форматов задания времени в зависимости от переданных аргументов.
new Date()
-
Если
Date
вызывается без аргументов, то создаётся объект с текущим временем.alert(new Date()); /* покажет текущее время */
new Date(дата)
-
Если передаётся один строковый аргумент, то он интерпретируется как дата в строковом формате.
alert(new Date('Dec 13, 1932')); /* Tue Dec 13 1932 00:00:00 GMT+0000 */
new Date(timestamp)
-
Если передаётся один числовой аргумент, то он интерпретируется как количество миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу.
alert(new Date(3000)); /* Thu Jan 01 1970 00:00:03 GMT+0000 */
new Date(год, месяц[, день_месяца[, часы[, минуты[, секунды[, миллисекунды]]]]])
-
Если объекту
Date
передаётся от 2 до 7 целых чисел, то они интерпретируются как непосредственное задание времени. Аргументы последовательно задают год, месяц, день месяца, часы, минуты, секунды и миллисекунды. Примечания:- Отсчёт месяцев начинается с 0.
- Если указаны не все аргументы, то пропущенные аргументы времени устанавливаются равными 0, а день месяца устанавливается равным 1.
- Данный формат создаёт объект локального (местного) времени, то есть в том часовом поясе, который установлен операционной системой пользователя.
- Если переданные параметры выходят за допустимый диапазон значений, то JavaScript автоматически преобразует их в допустимые диапазоны. Например, если передать 65 секунд, то JavaScript представит их как 1 минуту и 5 секунд.
alert(new Date(1996, 11)); /* Sun Dec 01 1996 00:00:00 GMT+0000 */ alert(new Date(1996, 11, 20, 13, 0, 1800)); /* Fri Dec 20 1996 13:30:00 GMT+0000 (1800 секунд = 30 минут) */ alert(new Date(1996, 11, 20, 13, 23, 40, 300)); /* Fri Dec 20 1996 13:23:40.300 GMT+0000 */
Приведённый выше пример при выполнении в московском часовом поясе вместо
покажетGMT+0000
.GMT+0300
Свойства объекта Date
length
Свойство length
всегда имеет значение 7. Это количество принимаемых аргументов.
alert(Date.length); // 7
prototype
Свойство prototype
наследуется из класса Object.
var date = new Date(); Date.prototype.prop = 'новое свойство'; alert(date.prop); /* 'новое свойство' */
Методы объекта Date
now()
Метод now()
возвращает количество миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу. Метод не имеет аргументов.
alert(Date.now()); /* покажет количество миллисекунд */
UTC()
Метод UTC()
возвращает количество миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу до того момента времени, который передан аргументами. Этот метод принимает от 2 до 7 аргументов, которые задают определённое время: год, месяц, день месяца, часы, минуты, секунды, миллисекунды. Примечания:
- Отсчёт месяцев начинается с 0.
- Если указаны не все аргументы, то пропущенные аргументы времени устанавливаются равными 0, а день месяца устанавливается равным 1.
- Переданные параметры определяют время в часовом поясе UTC+0, то есть всемирное время.
- Если переданные параметры выходят за допустимый диапазон значений, то JavaScript автоматически преобразует их в допустимые диапазоны. Например, если передать 65 секунд, то JavaScript представит их как 1 минуту и 5 секунд.
alert(Date.UTC(1996, 11, 20, 13, 0, 1800)); // 851088600000
parse()
Метод parse()
преобразует переданную дату в количество миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу, и возвращает это значение. Метод принимает в качестве аргумента дату в строковом формате.
alert(Date.parse('Dec 13, 1932')); // -1169262000000
Свойства наследников Date
constructor
Свойство constructor
наследуется из класса Object.
var date = new Date(); alert(date.constructor); /* 'function Date() {[native code]}' */
Методы наследников Date
Получение отдельных значений
Метод | Описание |
---|---|
getFullYear() |
Год из указанной даты по местному времени. |
getMonth() |
Месяц из указанной даты по местному времени. Число от 0 до 11. |
getDate() |
День месяца из указанной даты по местному времени. Число от 1 до 31. |
getDay() |
День недели из указанной даты по местному времени. Число от 0 до 6. (0 - воскресенье). |
getHours() |
Часы из указанной даты по местному времени. Число от 0 до 23. |
getMinutes() |
Минуты из указанной даты по местному времени. Число от 0 до 59. |
getSeconds() |
Секунды из указанной даты по местному времени. Число от 0 до 59. |
getMilliseconds() |
Миллисекунды из указанной даты по местному времени. Число от 0 до 999. |
getUTCFullYear() |
Год из указанной даты по всемирному времени. |
getUTCMonth() |
Месяц из указанной даты по всемирному времени. Число от 0 до 11. |
getUTCDate() |
День месяца из указанной даты по всемирному времени. Число от 1 до 31. |
getUTCDay() |
День недели из указанной даты по всемирному времени. Число от 0 до 6. (0 - воскресенье). |
getUTCHours() |
Часы из указанной даты по всемирному времени. Число от 0 до 23. |
getUTCMinutes() |
Минуты из указанной даты по всемирному времени. Число от 0 до 59. |
getUTCSeconds() |
Секунды из указанной даты по всемирному времени. Число от 0 до 59. |
getUTCMilliseconds() |
Миллисекунды из указанной даты по всемирному времени. Число от 0 до 999. |
getTime() |
Количество миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу до указанной даты. |
getTimezoneOffset() |
Смещение местного времени от всемирного (UTC+0) в минутах. Например, для часового пояса UTC+3 смещение равно -180 минут. |
Изменение отдельных значений
Метод | Описание |
---|---|
setFullYear() |
Год из указанной даты по местному времени. Дополнительно можно указать месяц и день месяца. |
setMonth() |
Месяц из указанной даты по местному времени. Дополнительно можно указать день месяца. |
setDate() |
День месяца из указанной даты по местному времени. |
setHours() |
Часы из указанной даты по местному времени. Дополнительно можно указать минуты, секунды и миллисекунды. |
setMinutes() |
Минуты из указанной даты по местному времени. Дополнительно можно указать секунды и миллисекунды. |
setSeconds() |
Секунды из указанной даты по местному времени. Дополнительно можно указать миллисекунды. |
setMilliseconds() |
Миллисекунды из указанной даты по местному времени. |
setUTCFullYear() |
Год из указанной даты по всемирному времени. Дополнительно можно указать месяц и день месяца. |
setUTCMonth() |
Месяц из указанной даты по всемирному времени. Дополнительно можно указать день месяца. |
setUTCDate() |
День месяца из указанной даты по всемирному времени. |
setUTCHours() |
Часы из указанной даты по всемирному времени. Дополнительно можно указать минуты, секунды и миллисекунды. |
setUTCMinutes() |
Минуты из указанной даты по всемирному времени. Дополнительно можно указать секунды и миллисекунды. |
setUTCSeconds() |
Секунды из указанной даты по всемирному времени. Дополнительно можно указать миллисекунды. |
setUTCMilliseconds() |
Миллисекунды из указанной даты по всемирному времени. |
setTime() |
Количество миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу до указанной даты. |
Преобразование в строку
Метод | Описание |
---|---|
toString() |
Возвращает строковое представление объекта. Вызывается всегда, когда объект должен быть представлен в виде строковогозначения. alert(new Date(123456789)); /* Fri Jan 02 1970 13:17:36 GMT+0300 */ |
toUTCString() |
Возвращает строковое представление объекта по всемирному времени (UTC+0).
var date = new Date('Jan 02 1970 10:00:00 GMT+0300'); alert(date.toUTCString()); /* Fri, 02 Jan 1970 07:00:00 GMT */ |
toISOString() |
Возвращает строковое представление объекта по всемирному времени (UTC+0) в формате ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ ).
var date = new Date('Jan 02 1970 10:00:00 GMT+0300'); alert(date.toISOString()); /* 1970-01-02T07:00:00.000Z */ |
toDateString() |
Возвращает строковое представление объекта, содержащее только дату.
var date = new Date('Jan 02 1970 10:00:00 GMT+0300'); alert(date.toDateString()); /* Fri Jan 02 1970 */ |
toTimeString() |
Возвращает строковое представление объекта, содержащее только время.
var date = new Date('Jan 02 1970 10:00:00 GMT+0300'); alert(date.toTimeString()); /* 10:00:00 GMT+0300 */ |