Урок 3
Дата и время
Учимся создавать новый объект.
Из Урока 1 вам известно, что существует такой объект как
document (документ)
.write (метод). Иначе в нем ничего нельзя было бы написать.
Сегодня мы поговорим как создавать новый объект и о семи методах объекта:
getDay()(день),
getDate()(дата),
getMonth()(месяц),
getYear()(год),
getHour()(час),
getMinute()(минуты),
getSecond()(секунды)
get (получить что-либо).
Как вы заметили это дата и время, все они уже существуют, их можно взять и поместить на страницу. Проблема в том, что это всего лишь методы.
Как мы уже знаем из предыдущих уроков
метод воздействует на объект. Поэтому методам getЧто-либо нужен объект для воздействия, а документ для этих целей не годится... так что придется самим придумывать новый объект.
Итак:
Имея дело с датой и временем, и если всякий раз пользуйтесь одной схемой, то для зтого надо создать объект, с которым будет работать метод getXXXXX().Назавём его Ray (луч).
Можно назвать его Der или Dark, браузеру все равно. Это не имеет значения, если объект получил оригинальное имя, которое больше нигде в JavaScript не встречается.
Для того, чтобы лучше всё это понять, создадим небольшой скрипт с датой и временем.
Как вы уже знаете из 1-го урока, скрипт помещается между
<SCRIPT LANGUAGE="JavaScript"> .....
</SCRIPT>для того чтобы браузер мог его распознать.
<SCRIPT LANGUAGE="JavaScript">
//Скрипт отмечает точную дату и время
Ray = new Date();
document.write("Сегодня " + Ray.getDate()+
"-" + Ray.getMonth() + "-" + Ray.getFullYear() + "."
"Вы зашли на мою страницу ровно в: " + Ray.getHours() +
":" + Ray.getMinutes() + " и " + Ray.getSeconds() +
" секунд.")
</SCRIPT>
Давайте теперь подробнее разберём этот скрипт.
Посмотрите на скрипт. Видите, скрипту дается команда поместить в документ (document.write) число, месяц, год, часы, минуты и секунды. А несколько дополнительных слов объясняют, на что вы смотрите.
Все что находится внутри скобок создано с помощью метода getЧто-либо().
Обратите внимание как написан метод. Сначала «g..» в нижнем регистре, потом Заглавная буква D....
Во-первых, помните, что все это цифры. Даже метод getDay(),который отвечает за день недели, выражается цифрой от единицы до семи.
Начнем с месяца.
Как уже говорилось раньше, getMonth() — это метод, отвечающий за месяц. Теперь задумаемся о том, на какой объект воздействует метод getMonth().
Помните это из Урока 1?
Метод (method) воздейcтвует на объект (object).
Может показаться, что getЧто-либо() — это метод объекта document. Вовсе нет.
Метод документа — write.
getMonth() на самом деле является методом объекта Date.
Взгляните на скрипт еще раз. Date занимает отдельное место в команде и ему присвоено новое имя Ray:
Ray = new Date();
Если вам кажется, что кое-что тут поставлено с ног на голову, я вас понимаю. Такое впечатление, что следует писать
new Date =
Ray, но это не так. Вы изучаете незнакомый язык и обязаны подчиняться его правилам.
Команда говорит: Ray — это объект, который представляет
new Date() (новую Дату). Дата обязательно должна быть новой.
Таким способом вы будете получать новую дату каждый раз, когда заходите на страницу или обновляете ее.
Теперь у нас есть объект
Ray, на который может воздействовать метод
getMonth().
Если нам нужно напечатать месяц на странице, значит, где-то должна быть команда
document.write().
Нам также известно, что текст в скобках будет виден на странице, так давайте напишем все это, следуя логике:
Сначала пишем
<SCRIPT LANGUAGE="javascript">.
Потом вставляем комментарий
//.... о том, для чего предназначен скрипт.
Прежде чем приступить к
getMonth(), необходимо создать объект.
Убедитесь, что строка заканчивается точкой с запятой.
Теперь можно вставлять утверждение
document.write.
Текст в скобках после
document.write оформляем по правилам
Урока 1.
Текст, видимый на странице, должен быть окружен двойными кавычками (одинарные кавычки для кода HTML внутри двойных).
Новое правило: сочетание текста и команд требует знака «плюс»
+ между элементами.
Объект и метод разделены точкой, так что команда напечатать месяц выглядит так:
Ray.getMonth().
Новое правило: Ray.getMonth() — это не текст, который должен быть виден на странице, а команда, которая указывает месяц. Поэтому не нужно ставить ее ни в какие кавычки.
Заканчиваем командой
</SCRIPT>.
И вот что у нас получилось
<SCRIPT LANGUAGE="javascript">
//Скрипт напечатает на странице номер месяца
Ray = new Date();
document.write("Сейчас месяц " +
Ray.getMonth())
</SCRIPT>
Обратите внимание на точку с запятой в конце. Она указывает на то, что строка JavaScript закончена. Без нее браузер решил бы, что команда продолжается на следующей строке.И это была бы ошибка.
Двойная дробь указывает на комментарий внутри скрипта. Она означает, что следующий за ней текст не участвует в процессе.
Можете добавлять сколько угодно текста, только помните, что каждая строка должна начинаться с двойной дроби
//.
Посмотрите на первый скрипт еще раз. Длинная строка уже не кажется такой страшной. Это просто объект Ray и метод getЧто-либо() после него.
Я разделил элементы даты дефисами. Помните, дефис должен быть виден на странице, поэтому его следует ставить в кавычки. Все части связаны между собой плюсами +.
Пробелы
Я научу вас одной маленькой хитрости.
Сколько бы пробелов вы не ставили до и после знаков плюс, это никак не повлияет на видимый результат. Элементы пойдут сплошным текстом. Поэтому, если вам нужны пробелы, добавляйте их в части текста в кавычках. Например:
"Сейчас ровно "
Видите, я добавил пробел перед второй кавычкой? Когда скрипт отпечатается на странице, пробел окажeтся на своем месте.
Помните: это не HTML. В Javascript существуют свои правила относительно пробелов.
Длинная строка
Я не буду разбирать ее во всех подробностях, потому что вы наверняка уже вошли в курс дела. Оставим только cтроку c датой. Вот как это выглядит:
document.write("Сегодня " + Ray.getDate() +
"-" + Ray.getMonth() + "-" + Ray.getFullYear() + ".
Вы зашли на страницу ровно в: " + Ray.getHours() +
":" + Ray.getMinutes() + " и " + Ray.getSeconds() +
" секунд.")
Я начал с «Сегодня », прибавив пробел в конце перед ковычкой.
Следом знак плюс чтобы связать между собой слово
сегодня и
дата.
Ray.getDate() без кавычек, потому что нам нужен не текст, а цифры.
Еще плюс
.
Потом дефис
- в кавычках, чтобы отделить следующие цифры. Никаких пробелов, потому что они должны стоять вплотную.
Плюс.
Потом
Ray.getMonth() без кавычек, чтобы у нас был месяц.
Плюс.
Еще дефис в кавычках, чтобы он был виден на странице.
Плюс.
Еще один метод
Ray.getFullYear() сообщит год.
Продолжайте дальше по этой схеме, и скрипт напечатает именно то, что вы хотите. Тогда вы всем сможете сказать, который час.
об одной из самых интересных заморочек JavaScript. Должно быть, вы заметили, что номер месяца на один меньше, чем нужно. Почему? Цифры сообщает нам JavaScript, a JavaScript любит считать от нуля. Чудно, ничего не скажешь, но так уж вышло. Tо есть, январь нулевой месяц и так далее.
Так что же делать? Прибавить 1, разумеется! Тут требуется известная сноровка. Нужно ввести несколько переменных, то есть, присвоить имя некоему элементу (это еще будет в Уроке 6). Вы присваиваете new Date() имя, как уже делали раньше. Затем присваиваете имя команде, которая вызывает месяц. Ниже я назвал ее mpo (Mесяц Плюс Oдин). И прибавляете к ней единицу. Эту новую команду я назвал mpo1. На слух довольно путано, но не торопитесь. Вот как это выглядит:
<SCRIPT LANGUAGE="javascript">
Now = new Date);
var mpo = Now.getMonth);
var mpo1 = mpo + 1
document.write"Сейчас месяц " + mpo1 + ".");
</SCRIPT>
И вот что у вас получилось