Добавляем...


  Работа с датами
   Объекты Date запоминают значения, соответствующие числу миллисекунд, отсчитываемых с начала "эпохи", поэтому значения дат обрабатываются с помощью методов, предлагаемых этим объектом.

Проеобразование дат в строки | Преобразование строк в даты | Ограничения представлений дат

Это значит, что значения Date устанавливаются и извлекаются чаще всего с помощью вызова подходящих методов, а не напрямую. Эти методы автоматически выполняют преобразование числа миллисекунд в понятные человеку форматы и обратно. Следующий пример иллюстрирует применение некоторых методов объекта Date:

var myDate = new Date ();
var year = myDate.getYear();
year = year + 1;
myDate.setYear(year);
alert(myDate);

В этом примере выясняется текущая дата и к ней добавляется один год. Результат получается следующим:
Mon Mar6 12:46:18 UTC+0200 2008

   JavaScript предлагает множество методов get и set для чтения и записи каждого поля даты, включая getDate(), setDate(), getMonth(), setMonth(), getHours(), setHours(),getMinutes(),setMinutes(),getTime(), setTime() и т.д. Кроме того, имеются UTC-версии всех этих методов: getUTCMonth(), getUTCHours(), setUTCMonth(), setUTCHours() и т.д. Одна пара методов требует специального комментария: getDay () и setDay (). Эти методы используются для работы с днями недели, которые запоминаются в виде целых чисел от 0 (воскресенье) до 6 (суббота). Вот пример, иллюстрирующий применение некоторых из наиболее популярных методов объекта Date.

Проеобразование дат в строки

   Существует много способов превращения объектов Date в строки. Если необходимо создать строку даты в особом формате, лучше всего прочитать отдельные компоненты объекта и составить строку "вручную". Если же нужна строка в стандартном формате, объект Date предлагает для этого три метода: tostring(), toUTCString() и toGMTString(). Их использование иллюстрируется следующим примером. Отметьте, что toUTCString() и toGMTString() форматируют строку в соответствии со стандартом Internet (GMT), тогда как toString() создает строку в соответствии с "локальным" временем.

var appointment = new Date("February 24, 1996 7:45");
document.write ("toString():", appointment.toString());
document.write("<br />");
document.write("toUTCString():", appointment. toUTCString()) ;
document.write ("<br />");
document.write ("toGMTString():", appointment.toGMTString());

В результате мы получим:
toString() : Sat Feb 24 07:45:00 UTC+0200 1996
toUTCString() :Sat, 24 Feb 1996 05:45:00 UTC
toGMTString() :Sat, 24 Feb 1996 05:45:00 UTC

Преобразование строк в даты

   Поскольку конструктору Date() можно передать строку, разумно предположить, что JavaScript обеспечивает механизм, позволяющий превращать строки в объекты Date. Это делается с помощью метода класса Date. parse(), возвращающего целое число, которое соответствует числу миллисекунд между началом "эпохи" и значением аргумента. Этот метод является свойством конструктора Date, а не отдельных экземпляров Date. Метод parse() является очень гибким в отношении дат, которые он может превращать в миллисекунды . Распознаются также стандартное поясное время, отклонение часового пояса от GMT и UTC, тройки месяц/день/год с разделителями - или /, а также сокращения для месяца и дня, наподобие "Dec" или "Tues". Например,

// Устанавливается значение 14 декабря 1982 г.
var myDay = "12/14/82";
// оно преобразуется в миллисекунды var converted = Date.parse(myDay) ;
// создается новый объект Date
var myDate = new Date(converted) ;
// выводится дата
alert(myDate);

создает myDate со значением, показанным ниже:
В результате мы получим:
Tue Dec 14 00:00:00 UTC+0200 1982

   Если вы не уверены в том, что строка, которую вы желаете конвертировать с помощью Date.parse(), будет распознана, нужно проверить возвращаемое методом значение. Если метод не может превратить данную строку в дату, он возвратит NaN. Например, вызов указанного метода в следующем примере

var myDay = "Friday, 2002";
var invalid = Date.parse(myDay);

возвратит NaN, поскольку myDay содержит недостаточно информации для выяснения даты.

  Ограничения представлений дат

   Нюансы объекта Date не следует недооценивать. Напомним, что ЕСМА-262 является стандартом, регламентирующим возможности ядра языка JavaScript. Хотя в большинстве аспектов реализации браузеры строго придерживаются спецификаций, различия в поведении объекта Date вполне обычны. Например, поддержка Date в очень старых браузерах, особенно в Netscape 2, просто ужасна. Дефектов так много, что программисту рекомендуется избегать почти всех действий с датами в рамках этой платформы, кроме простейших. Netscape 3 уже лучше, но еще имеет проблемы с корректной обработкой часовых поясов. Работая с датами в этих двух версиях Netscape, следует быть предельно внимательным. Internet Explorer 3 не позволяет использовать даты до начала "эпохи". Однако Netscape 4+ и Internet Explorer 4+ уже могут обрабатывать даты на сотни и тысячи лет до или после начала "эпохи", что достаточно для большинства задач. Конечно, использовать значения до н.э. или значения, находящиеся далеко в будущем, следует с осторожностью.
назад: Создание обьектов Date далее:


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика