Доброго времени суток всем подписчикам и читателям блога scriptcoding.ru. В этой статье мы изучим встроенный объект языка программирования jscript – Date.
Объект JS Date предназначен для работы с датой и временем и для преобразования строк в формат даты. При создании класса Date, jscript использует ключевое слово new и один из трёх видов конструкторов, давайте посмотрим на их общий синтаксис:
Класс JS DATE – дата и время
Date() – в данном случае будет произведен вывод текущей даты и времени js в формате: <название дня><название месяца><дата1><время1><год>, время задается по Гринвичу, т. е. с использованием UTC (UCT — Universal Coordinated Time).
Date(nMilliseconds) – Как видим, тут мы передаем один параметр nMilliseconds, который задает дату1 в миллисекундах, считая от 1 января 1970 года
Date(year, month, date [, hours [, min [, sec [, ms]]]]) – Тут мы видим, что конструктору передаются несколько параметров, что позволяет задать вручную все значения даты и времени js:
- year — Год в четырехзначном формате, например 1998 (но не 98).
- month — Номер месяца от 0 (январь) до 11 (декабрь).
- date — Календарная дата1 в диапазоне от 1 до 31.
- hours — Час дня в диапазоне от 0 до 23.
- min — Минуты в диапазоне от 0 до 59.
- sec – Количество секунд в диапазоне от 0 до 59.
- ms – Число миллисекунд в диапазоне от 0 до 999.
Хорошо, давайте посмотрим на следующий пример использования класса JS DATE в сценарии на языке программирования JSCRIPT, который работает под управлением сервера Windows Script Host:
//********************************** // Объект JS Date // 1_date.js //********************************** var a, b, c //Текущая дата1 и время1 a = new Date(); //js //Период через 1000 мс после 1 января 1970 года b = new Date(1000); //Собственная временная дата2 c = new Date(2000,5,20,12,20,55,97); WScript.Echo (a + "\n" + b + "\n" + c); |
Хорошо, теперь давайте рассмотри основные методы класса Date JS языка.
getFullYear() – Номер текущего года в четырехзначном формате.
getDate() – Вернёт номер текущей даты (от 1 до 31).
getMonth() – Номер текущего месяца (от 1 до 12).
getDay() — Номер дня недели (0 для воскресения, 1- для понедельника. и т. д.).
getHours() – Количество часов (отсчет начинается с полуночи).
getMinutes() — Вернёт количество минут (отсчет начинается с начала часа).
getSeconds() — Число секунд (отсчет идет с начала минуты).
getMilliseconds() — Число миллисекунд.
Давайте рассмотрим следующий пример сценария, который демонстрирует работу с вышеописанными методами класса Date:
//********************************** // Объект JS Date // 2_date.js //********************************** var js_new_date = new Date; //js var gFullYear, gDate, gMonth, gDay, gHours, gMinutes, gSeconds, gMilliseconds, MyArr, index, list=""; gFullYear = "Год\t\t" + js_new_date.getFullYear(); gDate = "Дата\t\t" + js_new_date.getDate(); gMonth = "Месяц\t\t" + js_new_date.getMonth(); gDay = "День недели\t\t" + js_new_date.getDay(); gHours = "Часы\t\t" + js_new_date.getHours(); gMinutes = "Минуты\t\t" + js_new_date.getMinutes(); gSeconds = "Секунды\t\t" + js_new_date.getSeconds(); gMilliseconds = "Миллисекунды\t\t" + js_new_date.getMilliseconds(); //Сохраняем всё в массиве MyArr = [gFullYear, gDate, gMonth, gDay, gHours, gMinutes, gSeconds, gMilliseconds] //Получаем доступ к каждому элементу массива for (var index in my_arr){ list+=MyArr[index] + "\n"; } //Выводим список WScript.Echo (list); |
Видим, что тут мы объявили ряд переменных jscript, которые хранят значения, возвращаемые функциями класса Date() JS языка, далее, все переменные мы прописали в массив MyArr (детальное описание массивов есть в статье «Урок 5 по JScript: Работа с массивами«), доступ к нему осуществляется через цикл for in (данный цикл я описал в статье «Урок 7 по JScript: for…in – цикл для работы с массивами и объектами«). В самом конце мы выводим список значений для всех переменных.
getTime() – Количество миллисекунд, которые прошли с 1 января 1970 года. Он идеально подходит для вычисления времени работы блока кода.
//********************************** // js date // Метод getTime() // 3_date.js //********************************** var to_time, end_time, time_elapsed, summ=0; //Начало to_time = (new Date()).getTime(); for (var i=0; i<=100000; i++){ summ+=i; } //Конец end_time = (new Date()).getTime(); // Время выполнения цикла time_elapsed = end_time - to_time; WScript.Echo ("Цикл выполнялся: " + time_elapsed + " миллисекунд"); |
Если вы внимательно посмотрите на данный сценарий, то увидите, что мы дважды объявляли объект Date в JS сценарии. Если этого не сделать, то функция getTime будет как вначале, так и в конце цикла возвращать одно значение.
getTimezoneOffset() – Вернёт разницу в минутах относительно локального времени и универсального (по Гринвичу).
//********************************** // Объект JS DATE // Метод getTimezoneOffset() // getTimezoneOffset_date.js //********************************** var time_zone, time_zone_cur //Смещение для текущего периода time_zone_cur = (new Date()).getTimezoneOffset() //js new date //Смещение для заданной даты time_zone = (new Date(2000,5,20,12,20,55,97)).getTimezoneOffset() WScript.Echo (time_zone + "\n" + time_zone_cur); |
toDateString() – Данная функция объекта Date в js сценарии вернёт строку, которая будет представлять дату2 для локального часового пояса.
toGMTString() – Аналог предыдущей функции, но за основу взят часовой пояс GMT (формат времени по Гринвичу).
toLocaleDateString() — Данный метод Date языка js вернёт строку, которая будет представлять дату2 для локального часового пояса согласно региональным настройкам системы.
toLocaleString() – Преобразует дату в строку в соответствии с локальным часовым поясом и локальными соглашениями о форматировании дат.
toLocaleTimeString() – Вернёт строку, которая содержит время из даты в локальном часовом поясе на основе локальных соглашений о форматировании времени.
toString() – Преобразование даты в строку.
toTimeString() – Преобразование времени из даты2 в строковый формат.
toUTCString() – Преобразует дату в строчный формат, при этом, используется универсальное время.
Возможно, приведенные функции выше вам покажутся однообразными и запутанными. Поэтому, чтобы не писать под каждый метод пример, я написал простой сценарий, в котором привел пример работы сразу всех методов:
//********************************** // JS DATE // Преобразование даты2 в строку2 // 4_toStr_date.js //********************************** var js_date_gettime = new Date; //js var toDS, toGMTS, toLDS, toLS, toLTS, toS, toTS, toUTCS, MyArr1, index, list=""; // js date to string toDS = js_date_gettime.toDateString(); toGMTS = js_date_gettime.toGMTString(); toLDS = js_date_gettime.toLocaleDateString(); toLS = js_date_gettime.toLocaleString(); toLTS = js_date_gettime.toLocaleTimeString(); toS = js_date_gettime.toString(); toTS = js_date_gettime.toTimeString(); toUTCS = js_date_gettime.toUTCString(); //Сохраняем всё в массиве MyArr1 = [toDS, toGMTS, toLDS, toLS, toLTS, toS, toTS, toUTCS] //Получаем доступ к каждому элементу массива for (var index in my_arr){ list+= MyArr1[index] + "\n"; } //Выводим список WScript.Echo (list); |
И так, в этой статье мы рассмотрели примеры сценариев jscript, внутренний класс Date и его основные методы. Да, есть у него и другие методы, но я решил описать лишь те, которые наиболее практичны. Стоит помнить, что в языке VBScript также присутствуют функции для работы с датой и временем.
Чувак у тебя ошибки в коде, ты хоть проверяй скрипт перед тем как выкладывать. Например задаешь массив MyArr, а потом используешь его по имени my_arr