Клас дати Date служить для зберігання значень дати
пі часу. Об'єкти цього класу створюються за допомогою конструктора
Date([par]), який приймає значення дати в
пчисловом або строковом форматі.
параметр par представлений в числовому форматі, він трактується як кількість мілісекунд, що пройшли
пс півночі 1 січня 1970 року за Гринвічем. Якщо він представлений у строковом
пформате, конструктор намагається представити його значення дати або часу на
пследующим правилами:
рядок, що має формат "місяць/число/рік" або "месяц.число.год" ( наприклад,
04.30.10) перетвориться на дату;
рядок, що має формат "місяць число рік" (наприклад, April 30 2010)
ппреобразуется в дату;
рядок, що має формат "години:хвилини:секунди" (наприклад, 10:04:57)
ппреобразуется під час;
рядок, що має формат "години:хвилини PM" (наприклад, 10:04 PM) перетвориться
ппо.
Наприклад, дата запуску першого штучного супутника землі може бути
пзадана таким чином:
sputnikLaunch = new Date("October 4, 1957 19:28:34 GMT");
Конструктор об'єкта дати може мати і такий формат:
Date(Рік, Місяць, Число [, Годинник, [Хвилини[Секунди, [, Мілісекунди]]]]). Якщо не
подин параметр не вказаний, конструктор ініціалізує об'єкт поточною датою. Приклади ініціалізації об'єктів дати в Javascript наведені в
ппримерах № 1№ 2.
setUTCDate(Число) - встановлює день місяця за UTC;
setUTCMonth(Місяць, [Число]) - встановлює місяць і число, якщо вказано,
ппо UTC;
setUTCFullYear(Рік, Місяць [[Число]]) - встановлює рік, а також місяць і
пчисло, якщо задані, за UTC;
setUTCHours(Годину, [Хвилини[Секунди, [, Миллисевкунды]]]]) - встановлює годину, а
птакже хвилини, секунди і мілісекунди, якщо задані, за UTC;
setUTCMinutes(Хвилини[Секунди, [, Миллисевкунды]]]) - встановлює хвилини, а
птакже секунди і мілісекунди, якщо задані, за UTC;
setUTCSeconds(Секунди[, Миллисевкунды]) - встановлює секунди, а також
пмиллисекунды, якщо задані, за UTC;
setUTCMilliseconds(Миллисевкунды) - встановлює мілісекунди за UTC;
parse - розшифровує рядок згідно з наведеними вище правилами та
пвозвращает кількість мілісекунд, що пройшли між отриманою датою і північчю 1
пянваря 1970 року за Гринвічем;
toUTCString() - перетворює дату в рядок у форматі універсального часу
пі возвраащает її;
toGMTString() - перетворює дату в рядок у форматі часу за гринвічем
пі возвраащает її (застосовується для сумісності, рекомендується використовувати
toUTCString();
tolocaleString() - перетворює дату в рядок, використовуючи інтернаціональні
пустановки системи, і возвраащает її (не рекомендується використовувати для
пвычислений);
toSource - повертає рядок, що вихідний код дати;
toString() - перетворює дату в рядок і возвраащает її.
*Примітка: Універсальний час UTC (Universal Coordinated Time)
пбыло введено замість часу за Гринвічем GMT (Greenwich Mean Time) з-за
пнеравномерной шкали GMT, пов'язаної з нерівномірним обертанням Землі.
пУниверсальное час визначає середній сонячний час на меридіані Грінвічу на
пбазе рівномірної атомної шкали часу. UTC не перекладається ні взимку, і влітку. Використання методів класу
Date показано в прикладах
№ 1№ 2.
прикладі №1 визначається кількість днів між
псегодняшним вдень і датою наступного Різдва (у прикладі - 7 січня 2011 року).
пДля цього після ініціалізації двох об'єктів Date,
псоответствующих цих дат, визначається кількість мілісекунд що містяться в цьому
ппромежутке часу, яке потім приводиться до числа днів.
<HTML> <HEAD> <TITLE>Висновок поточної дати і часу на екран</TITLE> <STYLE> .text{font:8mm; color:blue; пройшов експертну оцінку консорціуму:500;
top:5;background:#E0E0FF;} </STYLE> <SCRIPT> function outTime() { txt.className="text"; txt.style.display=""; cur_time=new Date(); with (cur_time) txt.value=getDate()+"."+eval(getMonth()+1)+"."+getYear()+
" "+ getHours()+":"+getMinutes()+":"+getSeconds(); setTimeout("outTime()",50); <}BR>
function delay() { d=delay.arguments[0]; if (delay.arguments.lengh==1) par=0; else par=delay.arguments[1]; switch(par) { case 0: break; case 1: d*=1000;break; case 2: d*=60000;break; } { status="Виконується затримка"; base_time=new Date().getTime(); test=new Date(); alert(test.getTimezoneOffset()); while(new Date().getTime()-base_time<d); status=""; } } </SCRIPT> </HEAD> <BODY onClick="outTime()"
onContextmenu="delay(5,1); return false""> <INPUT TYPE=text NAME="txt" SIZE=7 STYLE="display:none"> </BODY> </HTML>
Ппро події Click викликається функція outTime(),
пкоторая встановлює необхідні значення властивостей техтового поля тега
<INPUT> і виводить у це поле поточну дату і час, визначені з
писпользованием методів класу Date. Розмір поля і шрифту
пбыли вибрані так, щоб після активізації поля можна було б, натискаючи клавіші
"End" і "Home"показувати в текстовому полі по черзі або дату або час.
події Contextmenu виконується виклик функції
Delay(5,1), яка здійснює п ’ ятисекундну
пзадержку шляхом порівняння поточного часу з базовим, визначеним у початку
пзадержки. Протягом затримки в полі статусу вікна браузера виводиться повідомлення
"Виконується затримка". Особливістю цієї функції є те, що з двох її параметрів перший
пявляется обов'язковим - він вказує чисельне значення затримки, а другий,
пкоторый визначає, в яких одиницях задається затримка, є необов'язковим.
пВ випадку, якщо він не вказаний при виконанні функції, його значення приймається на
пумолчанию. Другий параметр може приймати наступні значення:
0 - час затримки вказується в мілісекундах (значення за замовчуванням);
1 - час затримки вказується в секундах;
2 - час затримки вказується в хвилинах;
Щоб визначити, скільки параметрів було передано функції в кожному
пконкретном випадку та їх значення, необхідно скористатися масивом
arguments, який, будучи властивістю класу функцій
Function, містить значення всіх аргументів
ппереданных функції при її натисненні: вираз delay.arguments[0]
задає перший аргумент для функції, вираз
delay.arguments[1] - другий аргумент, а
delay.arguments.length - кількість аргументів
ппереданных функції. Зауважимо, що масив arguments
пдоступен тільки в тілі функції.