- •Xhtml 1.0 Strict
- •Xhtml 1.0 Transitional
- •Xhtml 1.0 Frameset
- •Xhtml 1.1
- •1.1Типы данных, переменные и литералы.
- •1.1.1 Преобразование типов данных.
- •1.1.2 Переменные.
- •1.1.3 Литералы.
- •1.2 Выражения и простые операторы.
- •1.2.1 Условные выражения.
- •1.2.2 Оператор присваивания.
- •1.2.3 Операторы cравнения.
- •1.2.4 Арифметические операторы.
- •1.2.5 Битовые операторы.
- •1.2.6 Логические операторы.
- •1.2.7 Строковые операторы.
- •1.2.8 Специальные операторы.
- •1.2.9 Приоритеты операторов.
- •1.3 Управляющие операторы JavaScript.
- •1.3.1 Условный оператор.
- •1.3.3 Оператор манипулирования объектами.
- •1.3.4 Комментарии.
- •1.4 Функции.
- •1.4.1 Использование функций.
- •1.4.2 Использование массива аргументов.
- •1.5.1 Объекты и свойства.
- •1.5.2 Создание новых объектов.
- •1.5.3 Использование индексов для свойств объекта.
- •1.5.4 Определение свойств объекта по умолчанию.
- •1.6 Методы.
- •1.6.1 Использование this для ссылок на объект.
- •1.6.2 Удаление объекта.
- •1.7 Встроенные объекты и их методы.
- •1.7.1 Объекты Array.
- •1.7.2 Объекты Boolean.
- •1.7.3 Объект Date.
- •1.7.4 Объект Function.
- •1.7.5 Объект Math.
- •1.7.6 Объект Number.
- •1.7.7 Объект String.
- •Variable Value
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 для обнуления.