Объект Date предназначен для манипуляций с датами и временами.
Его примитивным значением является число, равное количеству миллисекунд относительно базового
времени, равного полуночи 1 января 1970 г. по Гринвичскому меридиану (UTC, Universal
Coordinated Time). Если это значение равно NaN,
то оно считается неопределенным.
День состоит из 86400000 миллисекунд. Диапазон значений Date от -100000000 дней до 100000000
дней относительно базового времени, что приблизительно равно 285616 лет в каждую сторону отсчета.
Для создания объектов Date используются следующие конструкторы:
new Date()
new Date(число)
new Date(строка)
new Date(год, месяц, день [,часы [,минуты [,секунды [,мс]?]?]?]?)
Здесь:
- число числовое выражение, задающее примитивное значение объекта в миллисекундах;
- строка строковое выражение, задающее дату и время в формате, описанном
в методе parse;
- год числовое выражение, задающее полный номер года (например, 1988,
а не 88);
- месяц числовое выражение, задающее номер месяца (0 = январь, 1 = февраль,
, 11 = декабрь);
- день числовое выражение, задающее номер для в месяце от 1 до 31;
- часы необязательное числовое выражение, задающее номер часа от 0 до
23;
- минуты необязательное числовое выражение, задающее номер минуты от
0 до 59;
- секунды необязательное числовое выражение, задающее номер секунды от
0 до 59;
- мс необязательное числовое выражение, задающее номер миллисекунды от
0 до 999.
Первый конструктор создает объект Date с текущей датой и временем по местному
времени. Остальные конструкторы создают объект Date с датой и временем, заданными
аргументами конструктора.
Примеры:
var a = new Date(); // текущие дата и время
var b = new Date("May 21, 1958 10:15 AM"); // заданные дата и время
var c = new Date(1958, 4, 21, 10, 15); // то же самое в другом формате
Методы объекта Date
| Метод |
Описание |
Член прототипа |
| parse |
Преобразует дату, заданную строкой, в количество миллисекунд относительно базового времени. |
Нет |
| setDate |
Устанавливает день месяца по местному времени. |
Да |
| setFullYear |
Устанавливает полный номер года по местному времени. |
Да |
| setHours |
Устанавливает часы по местному времени. |
Да |
| setMilliseconds |
Устанавливает миллисекунды по местному времени. |
Да |
| setMinutes |
Устанавливает минуты по местному времени. |
Да |
| setMonth |
Устанавливает месяц по местному времени. |
Да |
| setSeconds |
Устанавливает секунды по местному времени. |
Да |
| setTime |
Устанавливает примитивное значение объекта. |
Да |
| setUTCDate |
Устанавливает день месяца по времени UTC. |
Да |
| setUTCFullYear |
Устанавливает полный номер года по времени UTC. |
Да |
| setUTCHours |
Устанавливает часы по времени UTC. |
Да |
| setUTCMilliseconds |
Устанавливает миллисекунды по времени UTC. |
Да |
| setUTCMinutes |
Устанавливает минуты по времени UTC. |
Да |
| setUTCMonth |
Устанавливает месяц по времени UTC. |
Да |
| setUTCSeconds |
Устанавливает секунды по времени UTC. |
Да |
| setYear |
Устанавливает номер года по местному времени. |
Да |
| toDateString |
Преобразует примитивное значение объекта в строку даты. |
Да |
| toGMTString |
Преобразует примитивное значение объекта в строку даты и времени по Гринвичскому меридиану. |
Да |
| toLocaleDateString |
Преобразует примитивное значение объекта в строку даты в формате операционной системы. |
Да |
| toLocaleString |
Преобразует примитивное значение объекта в строку даты и времени в формате операционной
системы. |
Да |
| toLocaleTimeString |
Преобразует примитивное значение объекта в строку времени в формате операционной системы. |
Да |
| toString |
Преобразует примитивное значение объекта в строку. |
Да |
| toTimeString |
Преобразует примитивное значение объекта в строку времени. |
Да |
| toUTCString |
Преобразует примитивное значение объекта в строку даты и времени по UTC. |
Да |
| UTC |
Возвращает примитивное значение объекта по времени UTC. |
Нет |
| valueOf |
Возвращает примитивное значение объекта. |
Да |
Синтаксис: Date.parse(строка)
Аргументы: строка строковое выражение
Результат: числовое значение
Метод parse преобразует дату, заданную строкой, в количество миллисекунд
относительно базового времени, и возвращает его. Строка: должна
содержать дату и время в определенном формате. Допускаются следующие форматы даты (пробелы и
запятые трактуются как разделители):
"7/20/82" "July 10, 1995"
"12-11-76" "10 Jan 2000"
Время может содержать часы, минуты и секунды, разделенные двоеточием:
"11:" "11:45" "23:45:12" "11:45:12
PM"
После даты и времени может стоять указатель временной зоны следующего вида (обе формы эквивалентны
и означают на 4 часа 30 минут больше UTC):
"UTC+0430" "GMT+0430"
Если такого указателя нет, то время считается местным. Перед датой и временем может стоять
название дня недели; если оно не соответствует заданной дате, то игнорируется.
Это статический метод объекта Date, поэтому для доступа к нему используется
форма Date.parse, а не объект.parse.
Например, сценарий
var d = new Date();
d.setTime(Date.parse("21 May 1958 10:12"));
document.write(d.toLocaleString());
выведет на экран обозревателя примерно такую строку: Wednesday, May
21, 1958 10:12:00 (точный вид этой строки зависит от обозревателя и настроек операционной
системы).
Синтаксис: дата.setDate(день)
Аргументы: день числовое выражение
Результат: нет
Метод setDate изменяет номер дня месяца по местному времени в объекте
дата. День должен быть целым числом в диапазоне от 1 до 31. Если день
превышает количество дней в данном месяце, то устанавливается день, равный дню минус
количество дней в данном месяце, а номер месяца увеличивается. Если день отрицателен,
то день и месяц изменяются по аналогичным правилам.
Например, сценарий
var d = new Date("July 27, 1962 23:30:00");
d.setDate(32);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Wednesday, August 01, 1962 23:30:00.
Синтаксис: дата.setFullYear(год [,месяц [,день]?]?)
Аргументы: год, месяц, день числовые выражения
Результат: нет
Метод setFullYear изменяет полный (четырехзначный) номер года по
местному времени в объекте дата. Одновременно он позволяет изменить номер месяца
и номер дня в месяце (ср. методы setMonth
и setDate). Например, сценарий
var d = new Date("September 26, 2000 09:52:30");
d.setFullYear(1999);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Sunday, September 26, 1999 09:52:30.
Синтаксис: дата.setHours(часы [,минуты [,секунды [,миллисекунды]?]?]?)
Аргументы: часы, минуты, секунды, миллисекунды числовые выражения
Результат: нет
Метод setHours задает часы по местному времени в объекте дата.
Часы должны быть целым числом в диапазоне от 0 до 23. Если часы больше 23,
то устанавливается час, равный часам минус 23, а номер дня увеличивается. Если часы
отрицательны, то час и день изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить минуты, секунды и миллисекунды
в объекте дата. Ср. методы setMinutes,
setSeconds и setMilliseconds.
Например, сценарий
var d = new Date("July 27, 1962 23:30:00");
d.setHours(25);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Saturday, July 28, 1962 01:30:00.
Синтаксис: дата.setMilliseconds(миллисекунды)
Аргументы: миллисекунды числовое выражение
Результат: нет
Метод setMilliseconds задает миллисекунды по местному времени в объекте
дата. Миллисекунды должны быть целым числом в диапазоне от 0 до 999. Если
миллисекунды больше 999, то устанавливаются миллисекунды, равные миллисекундам
минус 999, а номер секунды увеличивается. Если миллисекунды отрицательны, то миллисекунды
и секунды изменяются по аналогичным правилам.
Например, сценарий
var d = new Date("January 20, 1999 23:59:59");
d.setMilliseconds(-1000);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Wednesday, January 20, 1999 23:59:58.
Синтаксис: дата.setMinutes(минуты [,секунды [,миллисекунды]?]?)
Аргументы: минуты, секунды, миллисекунды числовое выражение
Результат: нет
Метод setMinutes задает минуты по местному времени в объекте дата.
Минуты должны быть целым числом в диапазоне от 0 до 59. Если минуты больше
59, то устанавливаются минуты, равные минутам минус 59, а номер часа увеличивается.
Если минуты отрицательны, то минуты и часы изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить секунды и миллисекунды в объекте
дата. Ср. методы setSeconds и setMilliseconds.
Например, сценарий
var d = new Date("January 20, 1999 23:59:59");
d.setMinutes(60);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Thursday, January 21, 1999 00:00:59.
Синтаксис: дата.setMonth(месяц [,день]?)
Аргументы: месяц, день числовые выражения
Результат: нет
Метод setMonth задает номер месяца по местному времени в объекте
дата. Месяц должен быть целым числом в диапазоне от 0 до 11. Если месяц
больше 11, то устанавливается месяц, равный месяцу минус 11, а номер года увеличивается.
Если месяц отрицателен, то месяц и годы изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить номер дня в месяце (ср. метод setDate).
Например, сценарий
var d = new Date("January 20, 1999 23:59:59");
d.setMonth(-1);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Sunday, December 20, 1998 23:59:59.
Синтаксис: дата.setSeconds(секунды [,миллисекунды]?)
Аргументы: секунды, миллисекунды числовые выражения
Результат: нет
Метод setSeconds задает секунды по местному времени в объекте дата.
Cекунды должны быть целым числом в диапазоне от 0 до 59. Если секунды больше
59, то устанавливаются секунды, равные секундам минус 59, а номер минуты увеличивается.
Если секунды отрицательны, то секунды и минуты изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить микросекунды (ср. метод setMilliseconds).
Например, сценарий
var d = new Date("January 20, 1999 23:59:59");
d.setSeconds(60);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Thursday, January 21, 1999 00:00:00.
Синтаксис: дата.setTime(значение)
Аргументы: значение числовое выражение
Результат: числовое значение
Метод setTime устанавливает примитивное значение объекта дата, равным
значению. Заданное значение объекта не зависит от временной зоны. Этот метод
полезен для копирования значения одного объекта Date в другой. Пример:
var d1 = new Date("May 21, 1958");
var d2 = new Date();
d2.SetTime(d1.GetTime()); // теперь значения этих объектов равны
Синтаксис: дата.setUTCDate(день)
Аргументы: день числовое выражение
Результат: нет
Метод setUTCDate изменяет номер дня месяца по времени UTC в объекте
дата. День должен быть целым числом в диапазоне от 1 до 31. Если день
превышает количество дней в данном месяце, то устанавливается день, равный дню минус
количество дней в данном месяце, а номер месяца увеличивается. Если день отрицателен,
то день и месяц изменяются по аналогичным правилам. Пример:
var d = new Date("July 27, 1962 23:30:00");
d.setUTCDate(25);
Синтаксис: дата.setUTCFullYear(год [,месяц [,день]?]?)
Аргументы: год, месяц, день числовые выражения
Результат: нет
Метод setUTCFullYear изменяет полный (четырехзначный) номер года
по времени UTC в объекте дата. Одновременно он позволяет изменить номер месяца
и номер дня в месяце (ср. методы setUTCMonth
и setUTCDate). Пример:
var d = new Date("July 27, 1962 23:30:00");
d.setUTCFullYear(1978);
Синтаксис: дата.setUTCHours(часы [,минуты [,секунды [,миллисекунды]?]?]?)
Аргументы: часы, минуты, секунды, миллисекунды числовые выражения
Результат: нет
Метод setUTCHours задает часы по времени UTC в объекте дата.
Часы должны быть целым числом в диапазоне от 0 до 23 . Если часы больше 23,
то устанавливается час, равный часам минус 23, а номер дня увеличивается. Если часы
отрицательны, то час и день изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить минуты, секунды и миллисекунды
в объекте дата. Ср. методы setUTCMinutes,
setUTCSeconds и setUTCMilliseconds.
Пример:
var d = new Date("July 27, 1962 23:30:00");
d.setUTCHours(22);
Синтаксис: дата.setUTCMilliseconds(миллисекунды)
Аргументы: миллисекунды числовое выражение
Результат: нет
Метод setUTCMilliseconds задает миллисекунды по времени UTC в объекте
дата. Миллисекунды должны быть целым числом в диапазоне от 0 до 999. Если
миллисекунды больше 999, то устанавливаются миллисекунды, равные миллисекундам
минус 999, а номер секунды увеличивается. Если миллисекунды отрицательны, то миллисекунды
и секунды изменяются по аналогичным правилам. Пример:
var d = new Date("July 27, 1962 23:30:00");
d.setUTCMilliseconds(999);
Синтаксис: дата.setUTCMinutes(минуты [,секунды [,миллисекунды]?]?)
Аргументы: минуты, секунды, миллисекунды числовое выражение
Результат: нет
Метод setUTCMinutes задает минуты по времени UTC в объекте дата.
Минуты должны быть целым числом в диапазоне от 0 до 59. Если минуты больше
59, то устанавливаются минуты, равные минутам минус 59, а номер часа увеличивается.
Если минуты отрицательны, то минуты и часы изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить секунды и миллисекунды в объекте
дата. Ср. методы setUTCSeconds и setUTCMilliseconds.
Пример:
var d = new Date("July 27, 1962 23:30:00");
d.setUTCMinutes(31);
Синтаксис: дата.setUTCMonth(месяц [,день]?)
Аргументы: месяц, день числовые выражения
Результат: нет
Метод setUTCMonth задает номер месяца по времени UTC в объекте дата.
Месяц должен быть целым числом в диапазоне от 0 до 11. Если месяц больше 11,
то устанавливается месяц, равный месяцу минус 11, а номер года увеличивается. Если
месяц отрицателен, то месяц и годы изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить номер дня в месяце (ср. метод setUTCDate).
Пример:
var d = new Date("July 27, 1962 23:30:00");
d.setUTCMonth(11);
Синтаксис: дата.setUTCSeconds(секунды [,миллисекунды]?)
Аргументы: секунды, миллисекунды числовые выражения
Результат: нет
Метод setUTCSeconds задает секунды по времени UTC в объекте дата.
Cекунды должны быть целым числом в диапазоне от 0 до 59. Если секунды больше
59, то устанавливаются секунды, равные секундам минус 59, а номер минуты увеличивается.
Если секунды отрицательны, то секунды и минуты изменяются по аналогичным правилам.
Этот метод позволяет одновременно изменить микросекунды (ср. метод setUTCMilliseconds).
Пример:
var d = new Date("July 27, 1962 23:30:00");
d.setUTCSeconds(59);
Синтаксис: дата.setYear(год)
Аргументы: год числовое выражение
Результат: нет
Метод setYear устанавливает номер года по местному времени в объекте дата.
Если год лежит в диапазоне от 0 до 99 включительно, то устанавливается номер года,
равный 1900 + год, в остальных случаях устанавливается номер года, равный году.
Этот метод является устаревшим и поддерживается только в целях совместимости; вместо него следует
пользоваться методом setFullYear.
Например, сценарий
var d = new Date("May 1, 2000 20:00:00");
d.setYear(99);
document.write(d.toLocaleString());
выведет на экран обозревателя строку Saturday, May 01, 1999 20:00:00.
Синтаксис: дата.toDateString()
Результат: строковое выражение
Метод toDateString преобразует примитивное значение объекта дата
в строку даты по местному времени. Например, сценарий
var d = new Date();
document.write(d.toDateString());
выведет на экран обозревателя Internet Explorer строку вида Sun Oct
29 2000.
Синтаксис: дата.toGMTString()
Результат: строковое выражение
Метод toGMTString преобразует примитивное значение объекта дата в
строку даты и времени по Гринвичскому меридиану (GMT). Этот метод является устаревшим и поддерживается
только в целях совместимости. Вместо него следует пользоваться методом toUTCString.
Формат результирующей строки зависит от обозревателя, например, сценарий
var d = new Date();
document.write(d.toGMTString());
выведет на экран обозревателя Internet Explorer строку вида Tue, 26
Sep 2000 05:16:41 UTC, а на экран Netscape Navigator строку вида Tue,
26 Sep 2000 05:16:41 GMT.
Синтаксис: дата.toLocaleDateString()
Результат: строковое выражение
Метод toLocaleDateString преобразует примитивное значение объекта дата
в строку даты по местному времени с учетом локальных установок операционной системы. Формат
результирующей строки зависит от локализации операционной системы и обозревателя, например,
сценарий
var d = new Date();
document.write(d.toLocaleDateString());
в русифицированной версии Windows выведет на экран обозревателя Internet Explorer
строку вида 26 сентября 2000 г.
Синтаксис: дата.toLocaleString()
Результат: строковое выражение
Метод toLocaleString преобразует примитивное значение объекта дата
в строку даты и времени по местному времени с учетом локальных установок операционной системы.
Формат результирующей строки зависит от локализации операционной системы и обозревателя, например,
сценарий
var d = new Date();
document.write(d.toLocaleString());
в русифицированной версии Windows может вывести на экран обозревателя Internet
Explorer строку вида 26 сентября 2000 г. 11:24:24, а на экран Netscape Navigator
строку вида Tuesday, September 26, 2000 11:24:24.
Синтаксис: дата.toLocaleTimeString()
Результат: строковое выражение
Метод toLocaleTimeString преобразует примитивное значение объекта дата
в строку времени по местному времени с учетом локальных установок операционной системы. Формат
результирующей строки зависит от локализации операционной системы и обозревателя, например,
сценарий
var d = new Date();
document.write(d.toLocaleTimeString());
в русифицированной версии Windows выведет на экран обозревателя Internet Explorer
строку вида 11:24:24.
Синтаксис: дата.toTimeString()
Результат: строковое выражение
Метод toTimeString преобразует примитивное значение объекта дата
в строку времени по местному времени. Например, сценарий
var d = new Date();
document.write(d.toTimeString());
выведет на экран обозревателя Internet Explorer строку вида 13:05:09
UTC+0500.
Синтаксис: дата.toString()
Результат: строковое выражение
Метод toString преобразует примитивное значение объекта дата в строку
даты и времени по местному времени. Формат результирующей строки зависит от обозревателя, например,
сценарий
var d = new Date();
document.write(d.toString());
может вывести на экран обозревателя Internet Explorer строку вида Tue
Sep 26 11:28:35 UTC-0700 2000 , а на экран Netscape Navigator строку вида
Tue Sep 26 11:28:35 GMT-0700 (Pacific Daylight Time) 2000.
Синтаксис: дата.toUTCString()
Результат: строковое выражение
Метод toUTCString преобразует примитивное значение объекта дата в
строку даты и времени по времени UTC. Формат результирующей строки зависит от обозревателя,
например, сценарий
var d = new Date();
document.write(d.toUTCString());
выведет на экран обозревателя Internet Explorer строку вида Tue, 26
Sep 2000 05:16:41 UTC, а на экран Netscape Navigator строку вида Tue,
26 Sep 2000 05:16:41 GMT.
Синтаксис: Date.UTC(год, месяц, день [,часы [,минуты [,секунды [,мс]?]?]?]?)
Аргументы: год, месяц, день, часы, минуты, секунды, мс числовые выражения
Результат: числовое значение
Метод UTC преобразует заданные дату и время в примитивное значение объекта
Date по времени UTC и возвращает его. Аргументы имеют следующие значения:
- год выражение, задающее полный номер года (например, 1988, а не 88);
- месяц выражение, задающее номер месяца (0 = январь, 1 = февраль,
,
11 = декабрь);
- день выражение, задающее номер для в месяце от 1 до 31;
- часы необязательное выражение, задающее номер часа от 0 до 23;
- минуты необязательное выражение, задающее номер минуты от 0 до 59;
- секунды необязательное выражение, задающее номер секунды от 0 до 59;
- мс необязательное выражение, задающее номер миллисекунды от 0 до 999.
Это статический метод объекта Date, поэтому для доступа к нему используется
форма Date.UTC, а не объект.UTC. Он полностью аналогичен конструктору
Date с единственным отличием: полученное примитивное значение вычисляется
по времени UTC, а не по местному времени.
Этот метод полезен для присваивания значения объектам Date. Например, следующий
сценарий
var x = Date.UTC(2000, 1, 2, 12, 35, 40);
var d = new Date(x);
document.write(d.toUTCString());
выведет на экран обозревателя строку Wed, 2 Feb 2000 12:35:40 UTC.
Синтаксис: дата.valueOf()
Результат: числовое значение
Метод valueOf возвращает примитивное значение объекта дата. Иными
словами, этот метод возвращает тот же результат, что и метод getTime.