Опубликован: 19.10.2006 | Уровень: для всех | Доступ: платный
Лекция 4:

Дата и время

< Лекция 3 || Лекция 4: 12 || Лекция 5 >

Добавление пробелов

Один небольшой прием-совет, который надо знать. Сколько бы пробелов вы не вставили до и после знака плюс, это никак не повлияет на видимый результат. Элементы пойдут сплошным текстом. Поэтому, если в текст требуется вставить пробелы, добавляйте их в части текста в кавычках. Например:

"Сейчас ровно   "

Видите, здесь добавлены два пробела перед второй кавычкой? Это превратится в два пробела на странице, когда сценарий выполнится. Помните: это не HTML. В Javascript существуют свои правила относительно пробелов.

Создание длинной строки

Мы не будем разбирать ее целиком, потому что вы наверняка уже поняли, что надо делать. Оставим только cтроку c датой. Вот как это выглядит:

document.write("Сегодня "  
+  (Now.getMonth()+1)+ 
"-" + Now.getDate() + "-" 
+ Now.getFullYear() + ".  
Вы зашли на Web-страницу ровно в : " 
+ Now.getHours() +
":" + Now.getMinutes()  + " и " 
+ Now.getSeconds() +
" секунд")
  1. Начинаем с "Сегодня ", прибавив в конце пробел.
  2. Затем следует знак плюс.
  3. (Now.getMonth() + 1) добавляется без кавычек, потому что нам нужен не этот текст, а возвращаемое число.
  4. Еще плюс.
  5. Потом дефис в кавычках, чтобы отделить следующее число. Никаких пробелов, потому что они должны стоять вплотную.
  6. Плюс.
  7. Потом Now.getDate() без кавычек, чтобы у нас был день.
  8. Плюс.
  9. Еще дефис в кавычках, чтобы он был виден на странице.
  10. Плюс.
  11. Еще один метод Now.getFullYear сообщит год.

Продолжайте дальше по этой схеме, и сценарий выведет именно то, что вы хотите. Тогда вы всем сможете сказать, который час.

Известная проблема

Об этом уже говорилось ранее, но поговорим немного еще. Должно быть, вы заметили, что номер месяца будет на единицу меньше чем нужно, если использовать просто getMonth(). Почему? Вспомните, что числа сообщает JavaScript, a JavaScript любит считать от нуля. Tо есть, январь нулевой месяц и так далее.

Что же делать? Прибавить 1, разумеется! Тут требуется известная сноровка. Нужно ввести несколько переменных, то есть присвоить имя некоему элементу (это еще будет в Уроке 6). Вы присваиваете new Date() имя, как уже делали раньше. Затем присваиваете имя коду, который вызывает месяц. Ниже я назвал его mpo (Mесяц Плюс Oдин). И прибавляете к этому имени единицу. Эту новую команду я назвал mpo1. Звучит несколько запутанно, но не торопитесь. Вот как это выглядит:

<SCRIPT LANGUAGE="javascript">

RightNow = new Date();
var mpo = RightNow.getMonth();
var mpo1 = mpo + 1;
document.write("Сегодня месяц " +mpo1+ ".");

</SCRIPT>

Вот что получилось:

Cегодня месяц 8.

Это уж правильный месяц, или как?

Задание

Сегодняшнее задание не очень сложное. Напишите сценарий, который выводит на Web-странице дату, разделенную косой чертой. Приветственный текст должен быть зеленого цвета. Пока не беспокойтесь о числах, мы рассмотрим изменение их цвета позже. Добавьте также комментарий о том, что это вы написали этот сценарий.

Возможное решение

Привет! Сегодня у нас 18/8/2006.

Вот сценарий:

<SCRIPT LANGUAGE="JavaScript">

// Автор сценария tttt@mail.ru
Now = new Date();
var mpo = Now.getMonth();
var mpo1 = mpo + 1;
document.write("<FONT COLOR='green'>Привет! Сегодня у нас:</FONT>" 
+ Now.getDate() + "/" 
+ mpo1 + "/" 
+ Now.getFullYear() + ".");
</SCRIPT>

Обратите внимание на команды FONT и одинарные кавычки при указании зеленого цвета шрифта. Дату можно было скопировать из первоначального сценария, заменив дефисы на косую черту.

< Лекция 3 || Лекция 4: 12 || Лекция 5 >
Елена Сапегова
Елена Сапегова

После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть?

Эдуард Семынин
Эдуард Семынин

Здравствуйте.

Перестали быть видны лекции и тесты практикума по программированию на JavaScript. Уже второй день из моего аккаунта виден лишь план занятий. В чем может быть проблема?

 

Alex Chekalov
Alex Chekalov
Украина, Poltava
Виктория Вернер
Виктория Вернер
Украина, Днепропетровск, ДИИТ, 2012