Метод UTC
возвращает количество миллисекунд, истекших с полуночи 1 января 1970 года и указанной датой, используя время в формате UTC.
Возвращаемое значение может использоваться методом setTime и конструктором объекта Date.
Если значение аргумента превышает верхнюю границу его диапазона или является отрицательным числом, остальные хранящиеся значения изменяются соответственно. Например, если задать 150 секунд, яваскрипт переопределит это число как две минуты и 30 секунд.
Метод Date.UTC полностью аналогичен конструктору Date с единственным отличием: полученное значение вычисляется по времени UTC, а не по локальному времени.
Это статический метод, который можно вызывать без создания объекта даты, поэтому для доступа к нему используется форма Date.UTC
, а не объект .UTC.
var x = Date.UTC(2000, 1, 2, 12, 35, 40);
var d = new Date(x);
alert(d.toUTCString());
// Выводится следующий результат:
// Wed, 2 Feb 2000 12:35:40 UTC.
Пример: Создание Date для даты в зоне GMT
gmtDate = new Date(Date.UTC(96, 11, 1, 0, 0, 0));
// Sun Dec 01 1996 03:00:00 GMT+0300 (Russian Standard Time)
Здравствуйте, Илья.
сверху, в описании:
seconds
Целое число в диапазоне от 0 до 59, представляющее секунды. Применяется, если указывается аргумент milliseconds.
чуть ниже пример:
...
Wed, 2 Feb 2000 12:35:40 UTC.
В примере 40 — это число, представляющее секунды. Аргумент milliseconds не указан, а оно применилось. Несоответствие описания и примера.
Да, действительно. Причем все справочники единодушны в своем мнении. Видимо, это общее заблуждение. Поправил описание.
Тоже самое для полей hours, minutes.
Как создать дату new Date(99,0,1) чтобы год не переводился в 1999-тый?
Например так:
Но зачем?)
Спасибо за хороший ответ! Отвечаю на вопрос «Зачем?». Требуется проверка на корректную дату (29 февраля, 31 апреля … и т.п.) начиная с 1/1/0001. Для этого я создаю объект даты, потом получаю с него день, месяц, год и сравниваю с тем, что ввел пользователь. Тут и вылез bug с 1 по 99й год
Wed, 2 Feb 2000 12:35:40 UTC.
почему Февраль? Указан первый месяц
потому что в джаваскрипте нумерация месяцев с нуля, 0 - январь, 1 - февраль, ...
"Метод Date.UTC полностью аналогичен конструктору Date с единственным отличием: полученное значение вычисляется по времени UTC, а не по локальному времени."
Так ли это?
dateObj = new Date(); // - возвращает текущую дату/время.
dateObj = Date.UTC(); // - возвращает NaN