new Date() new Date(milliseconds) new Date(dateString)
new Date(yr_num, mo_num, day_num [,
hr_num, min_num, sec_num, ms_num])
Версии до JavaScript 1.3:
new Date() new Date(milliseconds) new Date(dateString)
new Date(yr_num, mo_num, day_num[, hr_num, min_num, sec_num])
Параметры
milliseconds
Целочисленное значение - количество миллисекунд после даты 1 января 1970 года, 00:00:00.
dateString
Строковое значение - дата. Строка должна иметь формат, распознаваемый методом Date.parse.
yr_num, mo_num, day_num
Целочисленные значения, представляющие части даты. Месяц это числа от 0 до 11, 0=January, 11=December.
hr_num, min_num, sec_num, ms_num
Целочисленное значение - часть даты.
Описание
Если аргументы не заданы, конструктор создаёт объект Date с текущей
датой и временем в соответствии с локальным временем. Если заданы некоторые, но
не все, аргументы, отсутствующие аргументы устанавливаются в 0.
Если Вы задаёте некоторые аргументы, Вы обязаны как минимум задать значения year, month
и day. Можно опустить hours, minutes, seconds и milliseconds.
Дата измеряется в миллисекундах, прошедших с полуночи 01 января 1970 UTC.
В сутках 86,400,000 миллисекунд. Объект Date имеет диапазон от -100,000,000
до 100,000,000 дней относительно 01 January, 1970 UTC.
Объект Date имеет универсальное поведение на всех платформах.
Объект Date поддерживает несколько UTC-методов (универсальных), а также методы локального времени.
UTC, известное также как Greenwich Mean Time (GMT) - время по Гринвичу, это время по стандарту World Time Standard.
локальное время это время компьютера, на котором выполняется JavaScript.
Для обеспечения совместимости с переходом в новое тысячелетие Вы должны всегда полностью
специфицировать год; например, используйте 1998, а не 98. Для специфицирования
полного года JavaScript имеет методы getFullYear, setFullYear,
getFullUTCYear и setFullUTCYear.
Следующий пример возвращает время в миллисекундах, прошедшее между датами timeA
и timeB.
timeA = new Date(); // Здесь некоторые операторы.
timeB = new Date(); timeDifference = timeB - timeA;
Обратная Совместимость
JavaScript 1.2 и ранее.Поведение объекта Date таково:
Даты до 1970 не допускаются.
JavaScript зависит от специфики дат на данной платформе; поведение объекта
Date меняется от платформы к платформе.
Возвращает литерал объекта, представляющий специфицированный Date -объект; Вы
можете использовать это значение для создания нового объекта. Переопределяет
метод Object.toSource.
getFullYear возвращает абсолютное число. Для дат в диапазоне лет от 1000
до 9999 getFullYear возвращает число из 4 цифр, например, 1995.
Используйте эту функцию, чтобы иметь уверенность в соответствии числа для лет после 2000.
Используёте этот метод вместо getYear.
Пример
Число из 4 цифр - год - присваивается переменной yr.
var yr; Today = new Date(); yr = Today.getFullYear();
getTime возвращает количество миллисекунд, прошедших после
1 января 1970, 00:00:00. Вы можете использовать этот метод для присвоения даты и времени другому
Date -объекту.
Пример
Значение даты в theBigDay присваивается sameAsBigDay:
theBigDay = new Date("July 1, 1999")
sameAsBigDay = new Date() sameAsBigDay.setTime(theBigDay.getTime())
Смещение часового пояса это разница между местным временем и Greenwich Mean Time (GMT).
Корректировка перехода на летнее время делает это значение неконстантным.
Пример
x = new Date() currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60
getUTCDate
Возвращает день/число месяца для специфицированной даты в соответствии со всемирным временем.
JavaScript 1.3: не рекомендуется применять; getYear возвращает год
минус 1900, независимо от специфицированного года.
Версия ECMA
ECMA-262
Синтаксис
getYear()
Параметры
Отсутствуют.
Описание
getYear больше не используется и заменён на метод getFullYear.
Метод getYear возвращает год минус 1900; соответственно:
Для лет больше 2000 - возвращаемое методом getYear
значение будет 100 или больше. Например, если это 2026 год, getYear возвратит 126.
Для лет от 1900 до 1999 включительно - значение, возвращаемое методом
getYear, находится в диапазоне от 0 до 99. Например, если это 1976
год, getYear возвращает 76.
Для лет меньше 1900 и больше 1999 значение,
возвращаемое методом getYear, будет меньше 0. Например, если это 1800 год, getYear
возвращает -100.
Чтобы учесть годы до и после 2000, Вы должны
использовать Date.getFullYear вместо getYear,
чтобы был специфицирован полный год.
Обратная Совместимость
JavaScript 1.2 и ранее.
Метод getYear возвращает 2-х или 4-хзначное число - год:
Для лет от 1900 до 1999 включительно -
getYear возвращает значение года минус 1900. Например, если это 1976
год, будет возвращено 76.
Для лет меньше 1900 или больше 1999 -
getYear возвращает год из 4 цифр. Например, если это 1856 год, будет возвращено
1856. Если это 2026 год, будет возвращено значение 2026.
Примеры
Пример 1.
Второй оператор присваивает значение 95 переменной year.
Xmas = new Date("December 25, 1995 23:15:00") year = Xmas.getYear() // возвращает 95
Пример 2.
Второй оператор присваивает значение 100 переменной year.
Xmas = new Date("December 25, 2000 23:15:00") year = Xmas.getYear() // возвращает 100
Пример 3.
Второй оператор присваивает значение -100 переменной year.
Xmas = new Date("December 25, 1800 23:15:00") year = Xmas.getYear() // возвращает -100
Пример 4.
Второй оператор присваивает значение 95 переменной year,
представляя 1995 год.
Xmas.setYear(95) year = Xmas.getYear() // возвращает 95
Метод parse принимает строку с датой (такую как "Dec 25, 1995")
и возвращает количество миллисекунд, прошедших до этой даты после 1 января 1970, 00:00:00 (местного
времени). Эта функция используется для установки значений даты на основе
строковых значений, например, в сочетании с методом
setTime и Date -объектом.
Получая строку с временем, parse возвращает значение времени.
Он принимает синтаксис даты стандарта IETF : "Mon, 25 Dec 1995 13:30:00 GMT".
Он понимает сокращения континентальных часовых поясов США, но для общих случаев
используйте смещение часового пояса, например,
"Mon, 25 Dec 1995 13:30:00 GMT+0430" (на 4 часа и 30 минут западнее
Гринвичского меридиана). Если Вы не специфицируете часовой пояс, используется
локальный часовой пояс. GMT и UTC эквивалентны.
Поскольку parse это static-метод объекта Date,
Вы всегда используете его как Date.parse(), а не как метод Date
-объекта, созданного Вами.
Пример
Если IPOdate это существующий Date
-объект, Вы можете установить его в August 9, 1995 таким образом:
Прототип для данного класса. Вы можете использовать
этот прототип для добавления свойств или методов во все экземпляры класса. О
прототипах см. Function.prototype.
Целое число от 0 до 11 - месяц от January до December.
dayValue
Целое число от 1 до 31
день/число месяца. Если Вы специфицируете параметр dayValue, Вы
обязаны также специфицировать и monthValue.
Описание
Если параметры monthValue и dayValue не
специфицированы, используются значения, возвращаемые методами getMonth и getDate.
Если специфицированные Вами параметры находятся вне пределов ожидаемого
диапазона, setFullYear пытается соответствующим образом обновить
другие параметры и информацию даты в Date -объекте. Например,
если Вы специфицируете 15 для monthValue, год увеличивается на 1 (year + 1), а 3 используется для месяца.
Пример
theBigDay = new Date(); theBigDay.setFullYear(1997);
Целое число от 0 до 59 - секунды.
Если Вы специфицируете параметр secondsValue, Вы обязаны также специфицировать и
minutesValue.
msValue
Число от 0 до 999 - миллисекунды. Если вы специфицируете параметр msValue, Вы обязаны
также специфицировать minutesValue и secondsValue.
Описание
Если Вы не специфицировали параметры minutesValue, secondsValue
и msValue, используются значения, возвращаемые методами getUTCMinutes, getUTCSeconds
и getMilliseconds.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона, setHours
пытается обновить информацию даты в Date -объекте. Например, если
Вы используете 100 для secondsValue, минуты будут увеличены на 1 (min + 1), а 40 будет
использовано для секунд.
Если Вы специфицируете число вне пределов ожидаемого
диапазона, информация даты в Date -объекте обновляется соответствующим образом.
Например, если Вы специфицировали 1005, количество секунд увеличивается на 1, а 5 используется для миллисекунд.
Пример
theBigDay = new Date(); theBigDay.setMilliseconds(100);
Целое число от 0 до 59 -
секунды. Если Вы специфицировали параметр secondsValue, Вы обязаны также
специфицировать и minutesValue.
msValue
Число от 0 до 999 - миллисекунды. Если вы специфицировали параметр msValue, Вы обязаны
также специфицировать minutesValue и secondsValue.
Примеры
theBigDay.setMinutes(45)
Описание
Если Вы не специфицировали параметры secondsValue
и msValue, используются значения, возвращаемые методами getSeconds и
getMilliseconds.
Если Вы специфицировали параметр вне ожидаемого
диапазона, setMinutes пытается соответствующим образом обновить
информацию даты в объекте Date. Например, если Вы использовали 100 для secondsValue,
минуты (minutesValue) будут увеличены на 1 (minutesValue + 1), а 40
будет использовано для секунд.
Целое число от 0 до 11 (месяцы с January до December).
dayValue
Целое число от 1 до 31 - день/число месяца.
Описание
Если Вы не специфицировали параметр dayValue,
используется значение из метода getDate.
Если специфицированный Вами параметр находится вне
пределов ожидаемого диапазона, setMonth пытается обновить информацию даты в
Date -объекте. Например, если Вы использовали 15 для monthValue,
год увеличивается на 1 (year + 1), а 3 будет использовано для месяцев/month.
Если Вы не специфицируете параметр msValue,
используется значение, возвращаемое методом getMilliseconds.
Если специфицированный Вами параметр находится вне ожидаемого диапазона,
setSeconds пытается обновить информацию даты в Date
-объекте. Например, если Вы используете 100 для secondsValue,
минуты, хранимые в объекте Date, будут увеличены на 1, а 40 будет использовано для секунд.
Если специфицированный Вами параметр находится вне
пределов ожидаемого диапазона, setUTCDate пытается обновить информацию даты в
Date -объекте. Например, если использовано 40 для dayValue,
а хранимый в объекте Date месяц - June, день будет изменён на 10, а месяц будет увеличен до July.
Целое число, специфицирующее числовое значение года, например, 1995.
monthValue
Целое число от 0 до 11 - месяцы от January до December.
dayValue
Целое число от 1 до 31
день/число месяца. Если Вы специфицировали параметр dayValue, Вы
обязаны также специфицировать monthValue.
Описание
Если Вы не специфицировали параметры monthValue
и dayValue, используются значения, возвращаемые методами getMonth и getDate.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона, setUTCFullYear
пытается обновить другие параметры и информацию даты в Date -объекте. Например,
если Вы специфицировали 15 для monthValue, год увеличивается на 1 (year + 1), а 3 используется для месяца.
Примеры
theBigDay = new Date(); theBigDay.setUTCFullYear(1997);
Целое число от 0 до 59
- секунды. Если Вы специфицировали secondsValue, Вы обязаны также специфицировать
minutesValue.
msValue
Число от 0 до 999 - миллисекунды. Если Вы специфицировали параметр msValue, Вы обязаны
также специфицировать minutesValue и secondsValue.
Описание
Если Вы не специфицировали параметры minutesValue, secondsValue и
msValue, используются значения, возвращаемые методами getUTCMinutes,
getUTCSeconds и getUTCMilliseconds.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона,
setUTCHours пытается обновить информацию в Date -объекте. Например,
если Вы используете 100 для secondsValue, минуты будут увеличены на 1 (min + 1), а 40 будет использовано для секунд.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона, setUTCMilliseconds
пытается обновить информацию в Date -объекте. Например, если Вы использовали
1100 для millisecondsValue, секунды, хранимые в объекте Date,
будут увеличены на 1, а 100 будет использовано для миллисекунд.
Примеры
theBigDay = new Date(); theBigDay.setUTCMilliseconds(500);
Целое число от 0 до 59 -
секунды. Если Вы специфицировали secondsValue, Вы обязаны также специфицировать minutesValue.
msValue
Число от 0 до 999 - миллисекунды. Если Вы специфицировали параметр msValue,
Вы обязаны также специфицировать minutesValue и secondsValue.
Описание
Если Вы не специфицировали параметры secondsValue
и msValue, используются значения, возвращаемые методами
getUTCSeconds и getUTCMilliseconds.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона, setUTCMinutes
пытается обновить информацию в Date -объекте. Например, если Вы используете 100 для
secondsValue, минуты (minutesValue) будут увеличены на 1
(minutesValue + 1), а 40 будут использованы для секунд.
Примеры
theBigDay = new Date(); theBigDay.setUTCMinutes(43);
Целое число от 0 до 11 - месяц от January до December.
dayValue
Целое число от 1 до 31 - день/число месяца.
Описание
Если Вы не специфицировали параметр
dayValue, будет использовано значение, возвращаемое методом getUTCDate.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона,
setUTCMonth пытается обновить информацию в Date -объекте. Например,
если Вы использовали 15 для monthValue, год будет увеличен на 1 (year + 1), а 3 будет использовано для месяцев.
Примеры
theBigDay = new Date(); theBigDay.setUTCMonth(11);
Если Вы не специфицировали параметр
msValue, используется значение, возвращаемое методом getUTCMilliseconds.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона,
setUTCSeconds пытается обновить информацию в Date -объекте. Например,
если Вы использовали 100 для secondsValue, минуты, хранимые в
Date -объекте, будут увеличены на 1, а 40 будет использовано для секунд.
Примеры
theBigDay = new Date(); theBigDay.setUTCSeconds(20);
setYear больше не используется и заменён на метод setFullYear.
Если yearValue это число от 0 до 99 (включительно), то год для
dateObjectName устанавливается в 1900 + yearValue.
Иначе год для dateObjectName устанавливается в yearValue.
Чтобы учесть годы до и после 2000, Вы должны использовать setFullYear
вместо setYear, чтобы год был специфицирован полностью.
Примеры
Обратите внимание, что имеются два способа установки года в 20 столетии.
В этом примере метод toGMTString конвертирует дату в GMT (UTC),
используя смещение часового пояса операционной системы, и возвращает строковое
значение, которое имеет примерно следующую форму. (Точная форма зависит от платформы.)
Если Вы передаёте дату с использованием toLocaleString, имейте в виду, что разные платформы ассемблируют
строки по-разному. Методы, такие как getHours, getMinutes
и getSeconds, дают более переносимые результаты.
Метод toLocaleString опирается на ОС при
форматировании дат. Он конвертирует дату в строку, используя соглашения по
форматированию операционной системы, на которой скрипт запущен. Например, в США
месяц идёт перед числом (04/15/98), а в Германии число идёт перед месяцем (15.04.98). Если ОС не решает проблему year-2000 и не использует полный
год для лет до 1900 или после 2000,
toLocaleString возвращает строку, которая не решает проблему year-2000.
toLocaleString ведёт себя аналогично методу toString
при конвертации года, который ОС форматирует несоответствующим образом.
Примеры
В следующем примере today это Date -объект:
today = new Date(95,11,18,17,28,35) //месяц представлен числами от 0 до 11 today.toLocaleString()
В следующем примере toLocaleString возвращает строковое значение в такой форме.
(Точный формат зависит от платформы.)
Объект Date переопределяет метод toString объекта
Object; он не наследует
Object.toString. Для объектов
Date метод toString возвращает
строковое представление объекта.
JavaScript автоматически вызывает метод toString,
когда даты представлена как текстовое значение или когда на дату ссылаются при конкатенации строк.
Примеры
toString -значение объекта Date присваивается переменной myVar:
x = new Date(); myVar=x.toString(); //присваивается значение переменной myVar, как здесь, например: //Mon Sep 28 14:36:22 GMT-0700 (Pacific Daylight Time) 1998
Значение, возвращаемое методом
toUTCString, является читаемой строкой, сформатированной в соответствии с соглашением UTC. Формат
return-значения может варьироваться в зависимости от платформы.
Примеры
var UTCstring; Today = new Date(); UTCstring = Today.toUTCString();
UTC принимает разделённые запятыми параметры
даты и возвращает количество миллисекунд прошедшее в период от 1 января 1970
года 00:00:00 всемирного времени до времени, специфицированного Вами.
Вы должны специфицировать полный год для year; например, 1998.
Если специфицирован год в диапазоне от 0 до 99, метод конвертирует год в год 20 столетия (1900 + year); например, если
специфицировано 95, используется 1995 год.
Метод UTC отличается от конструктора Date двумя позициями:
Date.UTC использует всемирное время, а не локальное.
Date.UTC возвращает значение времени как число, вместо создания объекта Date.
Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона,
метод UTC обновляет другие параметры Вашего числа. Например, если Вы используете
15 для month, год будет увеличен на 1 (year + 1), а 3 будет использоваться для месяца.
Поскольку UTC это static-метод объекта Date,
Вы всегда используете его так Date.UTC(), а не как метод созданного Вами Date -объекта.
Пример
Оператор создаёт Date -объект с использованием GMT вместо локального времени:
Метод valueOf объекта Date
возвращает примитивное значение объекта Date как тип данных number (число),
количество миллисекунд, прошедших после полуночи 01 января 1970 года по UTC.
Это метод обычно вызывается в JavaScript внутренне, а не явно в коде.
Примеры
x = new Date(56,6,17);
myVar=x.valueOf() //присваивает -424713600000 переменной myVar