Урок 14 по JScript — объект Date, дата и время

Урок 14 по JScript — объект Date, дата и время Программирование на JSCRIPT

Доброго времени суток всем подписчикам и читателям блога 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 языка.

js date gettime - Функции класса DATE

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

Возможно, приведенные функции выше вам покажутся однообразными и запутанными. Поэтому, чтобы не писать под каждый метод пример, я написал простой сценарий, в котором привел пример работы сразу всех методов:

//**********************************
// 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 также присутствуют функции для работы с датой и временем.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий

  1. Роман

    Чувак у тебя ошибки в коде, ты хоть проверяй скрипт перед тем как выкладывать. Например задаешь массив MyArr, а потом используешь его по имени my_arr

    Ответить