«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript
site.komp36.ru Создание сайтов. Твой сайт фотографа Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.
site.komp36.ru Продающий лендинг «Установка и продажа окон» Установка и продажа окон, установка дверей, перегородок. Одностраничный продающий сайт. Заявки прямо с сайта
site.komp36.ru Универсальный лендинг. Любая тема сайта - 4900 руб. Лендинг адаптируется под любую тему: ремонт, отделка, продажа окон, дверей, лестниц, мебели и многое другое
site.komp36.ru Создание сайтов. Сайт сервисного центра. Сайт компании. Новости и отзывы. Несколько прайс-листов – под каждый отдельная страница. Возможность размещения статей


Игра «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих



Далее на странице...

Работа с Датами - является обязательным навыком при изучении многих языков программирования.

Как и где используется объект Date?

Например, можно засекать время работы функции и сравнивать это время с продолжительностью работы какого-либо другого скрипта.

Часто объект Date используется для вывода текущей даты, создания таймера. Для хранения времени создания или изменения какого-либо документа и т.п.



Объект Date - Текущая дата

Объект Date содержит различные методы и свойства, которые будут рассмотрены далее. В простом варианте использования – объект Date выводит текущую Дату.

JavaScript-код

'use strict';

const now = new Date();

console.log(now);

Результат в консоли

Sat Jul 02 2022 19:13:28 GMT+0300 (Москва, стандартное время)

Результат в Браузере

Создаем новую ДАТУ (в данном случае это будет текущая дата) и помещаем ее в переменную. И выводим текущую дату и время.

Итак, в результате/в консоли мы получили такой вот формат текущей даты Sat Jul 02 2022 19:13:28.

 

Передаем в объект Date любую дату

В объект Date можно передать текущую или любую другую дату, используя следующий формат записи. Нули перед цифрами - не указываются.

JavaScript-код

'use strict';

const now = new Date(2022, 7, 2, 19); // передаем год, месяц, число и час

console.log(now);

Результат в консоли

Tue Aug 02 2022 19:00:00 GMT+0300

Сегодня суббота 2-е Июля 2022 года. Пробуем передать эту ДАТУ в объект Date. Но в результате мы увидим Tue Aug 02 2022 19:00:00 GMT+0300.

Вторник 2-е Августа. Почему? Ведь мы указали 7-ой месяц - Июль.

Необходимо знать и помнить, что нумерация месяцев в JS начинается с 0. То есть 0-ой месяц - это Январь. Соответственно 7-ой - это Август и т.д.

Если в объект Date передается дата без указания времени: то по умолчанию для указанной даты будет будет установлено время полуночи.

timestamp - 1970 - Число миллисекунд

Любая дата в JS хранится в миллисекундах.

Число миллисекунд, прошедших с начала 1970 года, называется таймстамп (англ. timestamp).

Пример 1

JavaScript-код

const now = new Date(0);

console.log(now);

Результат в консоли

Thu Jan 01 1970 03:00:00 GMT+0300 (Москва, стандартное время)

В объект Date передано 0 миллисекунд - в результате мы видим дату 1-го января 1970 года - это начало отсчета.

Пример 2

JavaScript-код

const now = new Date(123456789000);

console.log(now);

Результат в консоли

Fri Nov 30 1973 00:33:09 GMT+0300 (Москва, стандартное время)

Таким образом, любое число миллисекунд можно трансформировать в дату.

Также любая дата преобразуется в миллисекунды: за это отвечает метод getTime - об этом ниже.

Методы объекта Date

Первая группа методов объекта Date - отвечает за получение компонентов ДАТЫ.

Методы getFullYear, getMonth, getDate и getDay; getHours, getMinutes и getSeconds - эти методы возвращают текущий год, месяц, день, час, минуту и секунду в соответствии с текущим часовым поясом. Подробнее о них читайте здесь.

Особое внимание стоит обратить на метод getDay, так как нумерация дней недели в JS начинается с 0: ВОСКРЕСЕНЬЕ имеет порядковый номер 0, СУББОТА - номер 6 и т.д.

Аналоги методов - UTC

У выше перечисленных методов есть аналоги, которые возвращают время по UTC.

JavaScript-код

const now = new Date();

console.log(now.getHours());
console.log(now.getUTCHours());

Результат в консоли

20
17

Метод getHours вернул текущий час по МСК - 20 часов. А метод getUTCHours - текущий час по времени UTC - 17 часов.

Метод getTimezoneOffset

Метод getTimezoneOffset возвращает разницу между местным временем и временем UTC в минутах.

JavaScript-код

const now = new Date();

console.log(now.getTimezoneOffset());

Результат в консоли

-180

-180 минут - не сложно вычислить, что это -3 часа, т.е. разница между временем UTC и временем часового пояса GMT+0300 (Москва, стандартное время).

Метод getTime

Метод getTime возвращает timestamp - число миллисекунд, прошедших с начала 1970 года до текущей даты.

Пример 1

JavaScript-код

const now = new Date();

console.log(now);

console.log(now.getTime());

Результат в консоли

Sun Jul 03 2022 07:46:22 GMT+0300 (Москва, стандартное время)

1656823582413

В консоли мы видим текущие ДАТУ и время и число миллисекунд, прошедших с начала 1970 года до настоящего момента.

Пример 2

JavaScript-код

const now = new Date(2010, 0, 0);

console.log(now);

console.log(now.getTime());

Результат в консоли

Thu Dec 31 2009 00:00:00 GMT+0300 (Москва, стандартное время)

1262206800000

Здесь мы видим число миллисекунд, прошедших с начала 1970 года до полуночи 31 декабря 2009 года. Так работает метод getTime.

Если число миллисекунд указать в качестве аргумента объекта Date, то он вернет соответствующую ДАТУ.

Точка отсчета будет все той же - начало 1970 года.

Этот прием часто используется на практике.

JavaScript-код

const now = new Date(1656823582413);

console.log(now);

Результат в консоли

Sun Jul 03 2022 07:46:22 GMT+0300

set - Установка времени и Даты

У вышеперечисленных методов есть противоположные методы, которые служат НЕ для получения (get), а для установки (set) времени и ДАТЫ.

Например, метод setHours устанавливает часы от 0 до 23 setHours(число от 0 до 23).

Метод setHours возвращает количество миллисекунд, прошедших с 1 января 1970 00:00:00 по UTC до указанного времени.

JavaScript-код

const now = new Date();

console.log(now); 

console.log(now.setHours(18));

console.log(now);

Результат в консоли

Sun Jul 03 2022 09:32:12 GMT+0300 (Москва, стандартное время)

1656862332194

Sun Jul 03 2022 18:32:12 GMT+0300 (Москва, стандартное время)

1. Выводим текущее время.

2. setHours - Устанавливаем время 18 часов. При этом метод setHours возвращает количество миллисекунд, прошедших с 1 января 1970 00:00:00 по UTC до 18 часов текущей Даты.

3. Выводим время, установленное методом setHours. Дата остается прежней/текущей.

setHours - Второй аргумент

Метод setHours может принимать 2 аргумента.

При этом вторым аргументом будут минуты. Но это редко используется, так как подразумевается и ожидается, что метод setHours - это все же установка часов.

JavaScript-код

const now = new Date();

console.log(now); 

now.setHours(18, 55);

console.log(now);

Результат в консоли

Tue Jul 05 2022 12:35:38 GMT+0300 (Москва, стандартное время)

Tue Jul 05 2022 18:55:38 GMT+0300 (Москва, стандартное время)

Авто исправление

Авто исправление в работе с датами в JS.

Что будет, если в методе setHours указать число отличное от диапазона от 0 до 23 часов? Например, 40?

JavaScript-код

const now = new Date();

console.log(now); 

now.setHours(40);

console.log(now);

Результат в консоли

Tue Jul 05 2022 21:22:54 GMT+0300 (Москва, стандартное время)

Wed Jul 06 2022 16:22:54 GMT+0300 (Москва, стандартное время)

Здесь JavaScript автоматически добавил 40 часов к текущему времени - в результате мы видим время и дату следующего дня.

Метод parse - Возвращает число миллисекунд

Метод parse разбирает строковое представление даты и возвращает количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC.

JavaScript-код

const now = new Date('2020-05-25');

console.log(now); 

const nowParse = Date.parse('2020-05-25');

console.log(nowParse); 

Результат в консоли

Mon May 25 2020 03:00:00 GMT+0300 (Москва, стандартное время)

1590364800000

Объект Date - Пример использования в JS

Рассмотрим один из примеров - как Даты могут использоваться в JS.

Объект Date можно использовать для измерения каких-либо промежутков времени.

Например, как узнать время выполнения скрипта?

JavaScript-код

'use strict';

let start = new Date(); // Начало выполнения скрипта
console.log(start); 

for(let i = 0; i < 2000000000; i++) {
    let some = i ** 3; // Возведение в 3-ю степень
}

let end = new Date(); // Конец выполнения скрипта
console.log(end);

alert(`Время выполнения скрипта ${end - start} миллисекунд`);

Результат в консоли

Tue Jul 05 2022 22:17:34 GMT+0300 (Москва, стандартное время)
Tue Jul 05 2022 22:17:37 GMT+0300 (Москва, стандартное время)

Результат в Браузере

Время выполнения скрипта - около 3-х секунд.

Читайте также...

site.komp36.ruТвой сайт фотографа. Создание сайтов Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.
site.komp36.ru Акция Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов
site.komp36.ru Акция Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта

Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Рунет - Часть 5
Работа с датами - Методы объекта Date. 1970 год. Число миллисекунд
571
Методы объекта ClassList - Работа с классами - Свойство length
886
Делегирование событий - Отслеживание событий на множестве элементов
2879
Пример создания табов в JavaScript - Работа с проектом
956
Методы setTimeout, setInterval и clearInterval – Синтаксис
701
Таймер обратного отсчета – Остаток времени до полуночи
1269
Cвойства clientWidth и clientHeight - Размеры элементов DOM
574
Вызов и закрытие модального окна - Триггеры и data-атрибуты
4277
Открытие модального окна через промежуток времени и в конце страницы
526
Функции-конструкторы - Прототип объекта. Свойство prototype
231
Контекст вызова функции this - Методы call, apply и bind
285
Контекст вызова в обработчиках событий – this в стрелочной функции
288
Объявление и наследование классов - Свойство constructor
156
Тематические публикации
site.komp36.ru Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов
site.komp36.ru Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта
Популярные заметки
Последние заметки