Меню сайта
Категории раздела
HTML [44] |
Visual C++ и MFC [21] |
c++ [78] |
php [19] |
Javascript [15] |
C# [51] |
загрузки [0] |
XNA
[10]
создание игр с помощью xna
|
Наш опрос
Друзья сайта
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » Javascript |
Урок 11
Для работы с датой и временем применяется встроенный объект Date. Этот объект не имеет свойств, но обладает несколькими методами, позволяющими устанавливать и изменять дату и время. Объект Date создается с помощью оператороа new и конструктора - Date. Например: var myData=new Date(); значением переменной myData будет текущая дата и время: Tue Feb 07 2012 17:47:37 GMT+0200 Методами объекта Date можно получать отдельно значения месяца, дня недели, часов, минут и секунд: getDate - возвращает число в диапазоне от 1 до 31, представляющее число месяца. getHours - возвращает час суток в диапазоне от 0 (полночь) до 23. getMinutes - возвращает минуты в диапазоне от 0 до 59. getSeconds - возвращает секунды в диапазоне от 0 до 59. Предположим, мы хотим написать сценарий, который будет определять текущее время и выводить его в формате "чч:мм:сс". Код html-страницы будет простой: <html> <head> <title>javascript дата</title> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript" src="script.js"></script> </head> <body> <form name="forma8"> <input type="button" value="Время" onClick="nTime(forma8);"> <input type="text" size="10" name="res"> </form> </body> </html> Теперь напишем саму функцию nTime(): function nTime(obj) { var t=new Date(); var h=t.getHours(); var m=t.getMinutes(); var s=t.getSeconds(); var result=h+":"+m+":"+s; obj.res.value=result; } * как вы помните методы отделяются от объекта точкой, об этом мы говорили в уроке 3 * Как видите, все просто. Сначала определяем текущее время, а потом с помощью методов извлекаем из него отдельные значения часов, минут и секунд. Здесь еще хочется пояснить строку var result=h+":"+m+":"+s. Впервые мы столкнулись с необходимостью выводить в результат, как значения переменных, так и простой текст. В принципе ничего сложного: переменные пишутся как есть, текст берется в кавычки, а знак + осуществляет операцию конкатенации, т.е. их объединения. В нашем примере остался один недочет, мы хотели, чтобы время выводилось в формате "чч:мм:сс", а сейчас оно выводится в формате "ч:м:с". Т.е., в 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. Давайте напишем сценарий, который будет определять текущую дату и выводить ее в формате "число месяц год". Код html-страницы будет простой: <html> <head> <title>javascript дата</title> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript" src="script.js"></script> </head> <body> <form name="forma9"> <input type="button" value="Дата" onClick="tData(forma9);"> <input type="text" size="20" name="res"> </form> </body> </html> Теперь напишем саму функцию tData(): 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 год отображать не хочет, поэтому лучше эти варианты не использовать. Вот собственно и все, вы вполне готовы самостоятельно написать сценарий, который при загрузке страницы отобразит дату, время и день ее посещения (в нормальном русском виде). Удачи! | |
Просмотров: 1023 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |