Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по Программированию в интернете.docx
Скачиваний:
3
Добавлен:
22.09.2019
Размер:
544.18 Кб
Скачать

1.7.3 Объект Date.

JavaScript не имеет данных типа date. Однако, можно использовать объект Date и его методы для работы с датами и временами в приложениях. Объект Date имеет большое количество методов для установки, получения, и управления датами. У него нет свойств. JavaScript обращается с датами подобно языку Java. Эти два языка имеют много одинаковых методов и хранят даты как число миллисекунд. прошедших с 1 января 1970г, 00:00:00.

Примечание. В настоящее время нельзя работать с датами до 1 января 1970г.

Создание объекта Date:

dateObjectName = new Date([parameters])

где dateObjectName - имя создаваемого объекта, это может быть новый объект или свойство существующего объекта. Параметры могут задаваться следующим образом:

- опущены: создается текущие дата и время, например, today= new Date();

- определяется строка в формате “месяц день, год часы:минуты:секунды”, например, Xmas95 =new Date("December 25, 1995 13:30:00"). Если опускаются часы, минуты или секунды они устанавливаются в нуль;

- задается целое значение года, месяца и дня, например, Xmas95 = new Date(95,11,25).

- задается целое значение года, месяца, дня, часов, минут, секунд.

Методы объекта Date. Методы для обработки дат и времен можно разделить на следующие категории:

  • - "set" методы, для установки дат и времен;

  • - "get" методы, для получения дат и времен;

  • - "to" методы, для получения строковых значений;

  • - parse и UTC методы, для грамматического разбора строк с датами.

С помощью "get" и "set" методов можно получать и устанавливать секунды, минуты, часы, дни месяца, дни недели, месяцы, и годы независимо друг от друга. Имеется метод getDay, возвращающий день недели, но нет соответствующего метода setDay, поскольку день недели устанавливается автоматически.

В методах используются следующие целые значения:

-секунды и минуты: 0 - 59

-часы: 0 - 23

-день недели: 0 - 6

-день месяца: 1 - 31 -месяц: 0 (январь) - 11 (декабрь)

-год: с 1900

Например, если вы установили следующую дату:

Xmas95 = new Date("December 25, 1995")

то Xmas95.getMonth() возвратит 11, а Xmas95.getYear() возвратит 95. Методы getTime и setTime полезны для сравнения дат. Метод getTime возвращает число миллисекунд начиная с 01.01.1970. Следующий пример выводит число дней, прошедших в текущем году:

today = new Date()

endYear = new Date("December 31, 1990") // Установили день и месяц endYear.setYear(today.getYear()) // Установили текущий год

msPerDay = 24 * 60 * 60 * 1000 // Число миллисекунд за день

daysLeft = (endYear.getTime() - today.getTime()) / msPerDay

daysLeft = Math.round(daysLeft) document.write("Number of days left in the year: " + daysLeft)

В этом примере создается объект Date c именем today, который содержит текущую дату. endYear определяет начало текущего года. Тогда, используя число миллисекунд за день, вычисляем число дней между today и endYear, используя getTime, и округляем число дней до целого.

Метод parse полезен для присваивания даты существующему объекту из строкового значения. Например, следующий пример использует parse и setTime для назначения даты объекту mydate:

mydate = new Date() mydate.setTime(Date.parse("Aug 9, 1995"))

Пример использования объекта Date. В этом примере в HTML области показываются непрерывно обновляемые цифровые часы. Это осуществимо, поскольку есть возможность динамически изменить содержание области текста в JavaScript (в отличие от обычного текста, который нельзя модернизировать без перезагрузки документа). Вывод в навигаторе выглядит следующим образом:

Начало формы

The current time is

Конец формы

Раздел <BODY> документа выглядит так:

<BODY onLoad="JSClock()">

<FORM NAME="clockForm"> The current time is <INPUT TYPE="text" NAME="digits" SIZE=12 VALUE=""> </FORM> </BODY>

Тег <BODY> включает обработчик событий onLoad. Когда страница загружается обработчик вызывает функцию JSClock, определяемую в разделе <HEAD>. Форма clockForm включает простое текстовое поле digits, в котором инициализирована пустая строка. В разделе <HEAD> документа JSClock определяется следующим образом:

<HEAD> <SCRIPT language="JavaScript">

<!-- function JSClock() {

var time = new Date()

var hour = time.getHours()

var minute = time.getMinutes()

var second = time.getSeconds()

var temp = "" + hour

temp += ((minute < 10) ? ":0" : ":") + minute

temp += ((second < 10) ? ":0" : ":") + second

document.clockForm.digits.value = temp

id = setTimeout("JSClock()",1000) } //-->

</SCRIPT>

Функция JSClock сначала создает новый объект Date, с именем time; так как аргументы не заданы, устанавливаются текущие значения. Запросы к getHours, getMinutes, и getSeconds выделяют значение текущего часа, минуты и секунды. Следующие четыре оператора строят строковое значение времени. Полученное значение присваивается области текста: document.clockform.digits.value = temp, тем самым время будет показано в документе. Конечный оператор в функции - рекурсивный запрос к JSClock: id=setTimeout("JSClock()",1000) Встроенная в JavaScript функция setTimeout определяет время задержки для для обращения к JSClock. Второй аргумент указывает задержку в 1000 миллисекунд. Таким образом модернизируется показ времени в форме с интервалом одна секунда. Обратите внимание, функция возвращает значение присваиваемое id, которое в данном случае нигде не используется, но может быть использовано в методе clearTimeout для обнуления.