В нашем примере остался один недочет, мы хотели, чтобы время выводилось в формате "чч:мм:сс", а сейчас оно выводится в формате "ч:м:с". Т.е., в 5 утра, время будет отображаться как "5:0:0", а хотелось бы так: "05:00:00" (что более привычно).
Исправьте это, например с помощью оператора if и строкового литерала "0" (идея проста: если часов меньше 10, то в результат перед hнаписать "0" и так со всеми переменными).
Методы объекта Date:
· getDay - возвращает день недели, как целое число от 0 (воскресенье) до 6 (суббота).
· getMonth - возвращает номер месяца в году, как целое число от 0 (январь) до 11 (декабрь).
· getYear - возвращает год в виде двух последних цифр (getFullYear - возвращает год в виде четырех цифр).
* К сожалению, начиная с 2000 года, есть проблема с отображением года в разных браузерах. Метод getYear в IE отображает полный год (вместо двух последних цифр), а FireFox вместо XX отображает 1XX (т.е. подставляет 1). Поэтому предпочтительнее использовать метод getFullYear.
Давайте напишем сценарий, который будет определять текущую дату и выводить ее в формате "число месяц год".
function tData(obj) { var s; var t=new Date(); var y=t.getFullYear(); var d=t.getDate(); var mon=t.getMonth(); switch (mon) { case 0: s="января"; break; case 1: s="февраля"; break; case 2: s="марта"; break; case 3: s="апреля"; break; case 4: s="мае"; break; case 5: s="июня"; break; case 6: s="июля"; break; case 7: s="августа"; break; case 8: s="сентября"; break; case 9: s="октября"; break; case 10: s="ноября"; break; case 11: s="декабря"; break; } var result=d+" "+s+" "+y; obj.res.value=result; }
Получилось подлиннее, чем в первом примере, т.к. приходится переводить на русский язык названия месяцев.
Рассмотренные выше методы позволяют получать дату. Если же нам потребуется установить дату, то следует использовать следующие методы:
· setDate - устанавливает число месяца в диапазоне от 1 до 31.
· setHours - устанавливает час для текущего времени в диапазоне от 0 (полночь) до 23.
· setMinutes - устанавливает минуты в диапазоне от 0 до 59.
· setSeconds - устанавливает секунды в диапазоне от 0 до 59.
· setYear - устанавливает значение года.
· setMonth - устанавливает значение месяца в диапазоне от 0 (январь) до 11 (декабрь).
· setTime - устанавливает значение объекта Date и возвращает количество миллисекунд, прошедших с 1 января 1970 года.
Так, если нам потребуется задать дату 06 декабря 2010 года, в функции мы будем иметь следующий код:
... var t=new Date(); var y=t.setYear(2010); var d=t.setDate(6); var mon=t.setMonth(11); ...
Задать дату можно прямо в конструкторе, указав в качестве параметра строку формата "месяц, день, год часы:минуты:секунды":
var t=new Date("Feb,10,1975 17:45:10");
Значение часов, минут и секунд можно опустить (они будут равны нулю):
var t=new Date("Feb,10,1975");
Эту же дату можно задать с помощью чисел, перечислив через запятую год, месяц, число, часы, минуты, секунды:
var t=new Date(75, 1, 10, 17, 45, 10);
Или же, опуская часы, минуты и секунды (они будут равны нулю):
var t=new Date(75, 1, 10);
Есть проблема: IE год отображать не хочет, поэтому лучше эти варианты не использовать.
Вот собственно и все, вы вполне готовы самостоятельно написать сценарий, который при загрузке страницы отобразит дату, время и день ее посещения (в нормальном русском виде). Удачи!