Получить текущую дату и время в JavaScript
В этом посте мы обсудим, как получить текущую дату и время в JavaScript.
Чтобы получить текущую дату и время в JavaScript, вы можете использовать toLocaleString() метод, который возвращает строку, представляющую заданную дату в соответствии с соглашениями, специфичными для языка.
// создаем новый объект `Date`
var today = new Date ( ) ;
// получаем дату и время
var now = today . toLocaleString ( ) ;
console . log ( now ) ;
результат: 1/27/2020, 9:30:00 PM
The toLocaleString() можно настроить с помощью локалей и аргумента options:
var today = new Date ( ) ;
var options = < weekday : 'long' , year : 'numeric' , month : 'long' , day : 'numeric' >;
options . timeZone = ‘UTC’ ;
options . timeZoneName = ‘short’ ;
var now = today . toLocaleString ( ‘en-US’ , options ) ;
console . log ( now ) ;
результат: Monday, January 27, 2020, UTC
Чтобы отобразить только дату в определенном формате, вы можете использовать toLocaleDateString() метод, как показано ниже:
// создаем новый объект `Date`
var today = new Date ( ) ;
// получить сегодняшнюю дату в формате `MM/DD/YYYY`
var now = today . toLocaleDateString ( ‘en-US’ ) ;
console . log ( now ) ;
результат: 1/27/2020
Чтобы отображать только время, вы можете использовать кнопку toLocaleTimeString() метод.
// создаем новый объект `Date`
var today = new Date ( ) ;
// получаем время в локали en-US
var now = today . toLocaleTimeString ( ‘en-US’ ) ;
console . log ( now ) ;
результат: 9:30:00 PM
Если вы уже используете Moment.js библиотеку, рассмотрите возможность использования format() способ разобрать момент.
var moment = require ( ‘moment’ ) ;
// получаем название месяца, день месяца, год, время
var now = moment ( ) . format ( «DD/MM/YYYY HH:mm:ss A» ) ;
console . log ( now ) ;
результат: 27/01/2020 21:30:00 PM
Это все о получении текущей даты и времени в JavaScript.
Оценить этот пост
Средний рейтинг 4.76 /5. Подсчет голосов: 33
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
3 Комментарии
Большинство голосов
Новейшие Самый старый
Встроенные отзывы
Просмотреть все комментарии
Просмотр комментариев
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Дата и время в JavaScript
JavaScript определяет класс Date для представления и оперирования числами с целью отображения даты и времени.
Объект Date создается с помощью конструктора Date() . Этот объект можно использовать, чтобы отображать год, месяц и день на веб-странице в виде таймера.
Результат работы конструктора Date() зависит от переданных ему аргументов.
- Конструктор без аргумента (Date()) выдает текущее время.
- Конструктор с одним аргументом (Date(milliseconds)) интерпретирует этот аргумент как количество миллисекунд, прошедших с 1970 года.
- Конструктор с двумя и более аргументами (Date(year, month, day, hours, minutes, seconds, milliseconds)) интерпретирует эти аргументы как год, месяц, день месяца, час, минуту, секунду и миллисекунду по местному часовому поясу.
В API Date первый месяц года обозначается как 0, а первый день месяца — как 1.
Конструктор Date() интерпретирует аргументы, используя часовой пояс локального компьютера.
На компьютере автора установлено индийское стандартное время, поэтому даты и время в этой статье интерпретируются по индийскому стандартному времени.
Чтобы указать дату и время в определенном часовом поясе, нужно добавить этот часовой пояс.
Пример: добавление часового пояса UTC (универсальное скоординированное по Гринвичу время).
Date.UTC() принимает те же аргументы, что и конструктор Date() , интерпретирует их в UTC и возвращает миллисекундную метку времени, которую можно передать конструктору Date() . По умолчанию результаты будут отображаться в часовом поясе локального компьютера. Чтобы отобразить дату в UTC, необходимо применить toString() , toUTCString() или toISOString() .
Date-методы в JavaScript
Методы get и set используются для запроса и изменения в объекте Date полей year , month , day-of-month , hours , minutes , seconds и milliseconds .
Эти методы применяются двумя способами: по местному времени и по UTC.
- Метод get помогает получить полный год ( FullYear ) в Date-объекте:
- getFullYear() ;
- getUTCFullYear() .
2. Метод set помогает установить полный год ( FullYear ) в Date-объекте:
- setFullYear() ;
- setUTCFullYear() .
Для получения и установки других Date-полей необходимо заменить вышеупомянутые методы get и set ‘FullYear’ на имя конкретного поля (например, getMonth , getUTCMonth , setMonth , setUTCMonth ).
Примечание. Методы для запроса:
- дня месяца — — → getDate() и getUTCDate() ;
- дня недели (от 0 для воскресенья до 6 для субботы) — — → getDay() и getUTCDay() . Дни недели доступны в режиме “только для чтения”, так что не существует метода setDay() .
Временные метки
JavaScript по умолчанию представляет даты как целые числа, которые указывают количество миллисекунд, прошедших с (или до) полуночи 1 января 1970 года по UTC. Это называется временными метками. Статический метод Date.now() возвращает текущее время в виде временной метки.
Форматирование и разбор Date-строк
В классе Date применяются следующие методы форматирования строк.
- toString() — использует местный часовой пояс, но не форматирует дату и время с учетом локали.
- toUTCString() — использует часовой пояс UTC, но не форматирует дату с учетом локали.
- toISOString() — выводит дату и время в стандартном формате “year-month-day hours:minutes:seconds.ms” (по стандарту ISO-8601). Буква “T” отделяет часть вывода даты от части вывода времени. Время выражается в UTC, что обозначается буквой “Z” в качестве последней буквы вывода.
- toLocaleString() — использует местный часовой пояс и формат, соответствующий локали пользователя.
- toDateString() — форматирует только часть даты и опускает время. Этот метод использует локальный часовой пояс и не выполняет форматирование, соответствующее локали.
- toLocaleDateString() — форматирует только дату. Этот метод использует местный часовой пояс и формат даты, соответствующий локали.
- toTimeString() — форматирует только время и опускает дату. Этот метод использует местный часовой пояс, но не форматирует время в соответствии с локалью.
- toLocaleTimeString() — форматирует время с учетом локали и использует местный часовой пояс.
В объекте Date существует статический метод parse() , который принимает в качестве аргумента строковое представление даты и возвращает временную метку, представляющую дату с 1 января 1970 года 00:00:00 UTC или NaN, если строка не распознана или не имеет подходящих значений даты.
- 7 полезных репозиториев GitHub для JS-программистов
- Как найти три наибольших числа в JavaScript
- Алгоритм JavaScript: Array.forEach()
Читайте нас в Telegram, VK и Дзен
Date JS — Дата и время в JavaScript
Для работы с датой и временем в JavaScript существует встроенный объект Date , который содержит методы для создания, хранения, изменения или вывода элементов времени с точностью до миллисекунды. К таким элементам относят: год, месяц, день месяца, неделя, час, минута, секунда, миллисекунда, день недели.
Создать объект Date можно с помощью аргументов:
- количество миллисекунд — new Date(value) ;
- строка — new Date(dateString) ;
- год, месяц, день, часы, минуты, секунды, миллисекунды;
Или пропустить аргументы вовсе.
new Date()
Создадим экземпляр объекта Date без дополнительных аргументов и выведем получившийся результат в console.
let date = new Date(); console.log(date); // Thu Sep 01 2022 06:46:30 GMT+1200 (Фиджи) console.log(date.getFullYear()); // 2022
Получим дату и время согласно часовому поясу, которое установлено на локальном компьютере.
Точно такую же информацию мы можем получить написав Date() без new .
let date = Date(); console.log(date); console.log(date.getFullYear()); // получим ошибку
Однако в этом случае мы получим строку, объект же Date может быть создан только путем вызова функции-конструктора, а следовательно с использованием оператора new . Встроенные методы, для работы с датой в JavaScript, со строкой работать не будут, кроме Date.parse() .
new Date(value)
Создать объект Date , можно передав в качестве аргумента количество миллисекунд.
console.log(new Date(0)); // Thu Jan 01 1970 12:00:00 GMT+1200 (Фиджи) console.log(new Date(818079300000)); // Tue Dec 05 1995 00:15:00 GMT+1200 (Фиджи) console.log(new Date(-268065720000)); // Tue Jul 04 1961 21:18:00 GMT+1200 (Фиджи)
Результат = 1 января 1970 года UTC+0 + количество миллисекунд.
Если указать миллисекунды со знаком минус, отсчет пойдет в обратную сторону. Таким образом все, что со знаком минус будет соответствовать дате до 1 января 1970 года.
getTime()
Количество миллисекунд прошедших с 1 января 1970 года по сегодняшний или заданный момент времени называется timestamp и может быть получено из new Date() с помощью метода getTime() .
date = new Date(2019, 5); alert(date.getTime()); // количество миллисекунд прошедшие с 1 января 1970 года alert(new Date(date.getTime())) // получаем дату обратно
Date.now()
Если необходимо получить количество миллисекунд прошедших с 1 января 1970 года по данный момент правильней будет использовать метод Date.now() .
let date = Date.now(); alert(date);
Запись эквивалента new Date().getTime() , но в отличие от этой конструкции Date.now() не создает промежуточный объект Date , что может быть особенно важно при разработке, где упор идет на быстродействие.
new Date(dateString)
Создать объект Date можно передав в качестве аргумента строку с датой и временем.
date = new Date('2021-09-25T05:27:00'); alert(date); // Sun Sep 25 2022 05:27:00 GMT+1300 (Тонга)
Дата должна быть записана в формате понятном методу Date.parse() , который преобразовывает строку в количество миллисекунд прошедших с 1 января 1970 года UTC+0. Если формат записи будет не верным, метод вернет NaN .
date = new Date('2021-09-25T05:27:00'); alert(Date.parse(date));
new Date(year, month, date, hours, minutes, seconds, millisecond)
new Date(1995, 11, 4, 3, 15, 10, 0); // Mon Dec 04 1995 03:15:10 GMT-0600 (Центральная Америка)
Рассмотрим все возможные аргументы по порядку:
Обязательные аргументы
Год (year) — обязательный аргумент. Обычно записывается полностью — все четыре числа — 2022. Допустима, но не рекомендуется запись от 0 до 99. В этом случае год будет интерпретирован, как 1900 + заданное число.
Месяц (month) — обязательный аргумент и целое число от 0 до 11, где первое это январь, а последнее декабрь.
Необязательные аргументы
День (date) — необязательный аргумент обозначающий день месяца, если не задан, то по умолчанию принимает значение 1. Отсчет начинается с единицы.
Часы (hours) — от 1 до 24
Минуты (minutes) — от 1 до 60
Секунды (seconds) — от 1 до 60
Миллисекунды (millisecond) — от до 1000
Часы, минуты, секунды и миллисекунды — это целые числа, если аргумент не задан, то по умолчанию принимается значение 0.
Если при создании объекта Date в качестве аргумента задано число больше или меньше логического диапазона, программа автоматически переформатирует его в корректное, перенеся значение не соседнее. Если год 2010, а месяц 12 – это будет январь 2011. Если задать 10 часов 61 минуту – это будет 11 часов 1 минута. Если месяц апрель, а день 0 это 31 марта.
Методы для получения элементов даты
getFullYear()
let date = new Date('1996-12-17T05:30:00'); date.getFullYear(); // 1996
Метод позволяет получить год из объекта Date , если аргументов нет вернет текущий.
getMonth()
let date = new Date('1996-12-17T05:30:00'); date.getMonth(); // 11
Метод вернет месяц в формате от 0 до 11, если аргументов нет текущий.
getDate()
let date = new Date('1996-12-17T05:30:00'); date.getDate(); // 17
Метод возвращает день месяца указанного в объекте, если аргументов нет вернет текущую дату по местному времени.
getHours(), getMinutes(), getSeconds(), getMilliseconds()
let date = new Date(1996, 11, 17, 21, 30, 10, 900); date.getHours(); // 21 или 9 часов вечера date.getMinutes(); // 30 минут date.getSeconds(); // 10 секунд date.getMilliseconds(); 900 миллисекунд
Если аргумент отсутствует метод вернёт 0.
getTimezoneOffset()
Метод возвращает разницу в минутах между локальным временем и UTC.
let date = new Date().getTimezoneOffset(); alert(date); // при UTC +3 покажет -180
getDay()
let date = new Date(1996, 11, 17); date.getDay(); // 2
Метод возвращает день недели, отсчет начинается с 0 (воскресенье) и заканчивается 6-ю (суббота). В примере 1996 год 17 декабря и это вторник, следовательно результат 2.
Установка компонентов даты и времени
Для того, чтобы заменить или передать в объект Date отдельные компоненты времени используют следующие методы. В квадратных скобках необязательные элементы, которые при отсутствии игнорируются.
setFullYear(год, [месяц], [день месяца])
setMonth(месяц, [день месяца])
setHours(часы, [минуты], [секунды], [миллисекунды])
setMinutes(минуты, [секунды], [миллисекунды])
setTime() — устанавливает время в Date равным количеству миллисекунд прошедших с 1 января 1970 г. UTC.
При использовании методов результат возвращается в миллисекундах прошедших с 1 января 1970 г. по времени установленном на компьютере.
let date = new Date(2019, 0); // Tue Jan 01 2019 00:00:00 GMT+0300 (Москва) date.setFullYear(2021); // 1609448400000 мс, что равно Fri Jan 01 2021 00:00:00 GMT+0300 (Москва)
В примере мы передали в объект 2021 год, который и заменил 2019-ый.
UTC-варианты методов
Методы получения и передачи элементов для объекта Date работают согласно времени установленном на компьютере. Для того, чтобы в качестве результата получать дату относительно всемирного координированного времени (UTC) используют похожие методы, отличающиеся только вставкой UTC.
Получение элементов даты согласно UTC:
getUTCFullYear() , getUTCMonth() , getUTCDate() , getUTCHours() , getUTCMinutes() , getUTCSeconds() , getUTCMilliseconds() , getUTCDay()
Установка компонентов даты и времени согласно UTC:
setUTCFullYear() , setUTCMonth() , setUTCDate() , setUTCHours() , setUTCMinutes() , setUTCSeconds() , setUTCMilliseconds()
Преобразование объекта Date к строке
Для того, чтобы получить из Date нужные элементы даты и времени в формате строки используют следующие методы:
toString() — дата и время
toTimeString() — только время
toDateString() — только дата
toUTCString() — дата и время в формате UTC
toISOString() — дата и время в формате ISO
toLocaleTimeString() — только время в локальном формате
toLocaleString() — дата и время в локальном формате
let date = new Date(2018, 4, 19, 2, 34, 10); date.toString(); // Sat May 19 2018 02:34:10 GMT+0300 (Москва) date.toTimeString(); // 02:34:10 GMT+0300 (Москва) date.toDateString(); // Sat May 19 2018 date.toUTCString(); // Fri, 18 May 2018 23:34:10 GMT date.toISOString(); // 2018-05-18T23:34:10.000Z date.toLocaleTimeString(); // 02:34:10 date.toLocaleString(); // 19.05.2018, 02:34:10
Итого
1. Объект Date может быть создан без аргументов или с аргументами. В первом случае получим текущую временную метку, во втором задаем нужный отрезок времени с помощью миллисекунд, строки с датой или аргументов (год, месяц, день, часы, минуты, секунды, миллисекунды).
2. Для получения отдельных элементов Date используют методы — getFullYear() , getMonth() , getDate() , getHours() , getMinutes() , getSeconds() , getMilliseconds() , getDay() .
3. Для того, чтобы установить новые компоненты даты и времени используют: setFullYear() , setMonth() , setDate() , setHours() , setMinutes() , setSeconds() , setMilliseconds() , setTime() .
4. Для получения даты в нужном формате в виде строки используют: toString() , toTimeString() , toDateString() , toUTCString() , toISOString() , toLocaleTimeString() , toLocaleString() .
5. При создании Date в независимости какие аргументы и в каком формате передаются, создается объект со всеми элементами времени.
6. Если передать в Date аргументы времени некорректного формата (целые числа), дата будет корректироваться переносом значения на соседнее.
Skypro — научим с нуля
Работа с датой и временем в JavaScript
В JavaScript создание даты осуществляется с помощью объекта Date . Объект Date представляет собой точку на оси времени и предназначен для хранения даты и времени с точностью до миллисекунды.
Примеры создания даты в JavaScript.
1. Создание текущей даты и времени.
Получить текущую дату и время в JavaScript осуществляется посредством создания экземпляра объекта Date без указания параметров:
JavaScript
// текущая дата (дата и время, которая была в момент создания экземпляра объекта Date на локальном компьютере пользователя) var now = new Date(); // например, выведем текущую дату в консоль console.log(now);
Если нужно получить только сегодняшнюю дату в формате строки, то можно воспользоваться методом toLocaleDateString :
var now = new Date().toLocaleDateString(); // 19.12.2019
Текущее время пользователя можно получить так:
var now = new Date().toLocaleTimeString(); // 11:02:48 var now = new Date().toLocaleTimeString().slice(0,-3); // 11:02
Дату и время в формате строки можно получить следующим образом:
var now = new Date().toLocaleString(); // 19.12.2019, 11:02:48
2. Создание даты путём указания объекту Date количества миллисекунд, прошедших с 1 января 1970 00:00:00 UTC.
// 1 год (не высокосный) = 365*24*60*60*1000 = 31536000000 мс // например, создадим дату 01.01.1971, 00:00:00 по UTC: var date1 = new Date(31536000000);
3. Создание даты посредством указания её объекту Date в виде строки.
При этом варианте создания даты JavaScript попытается понять переданную ей строку и сформировать на основе её дату. Преобразование строки в дату в JavaScript осуществляется с помощью метода Date.parse .
// создание даты на основе строки в формате DD.MM.YY var date1 = new Date('05.11.19'); // создадим дату на основе строки в формате YYYY-MM-DDThh:mm:ss.sss (символ T используется для разделения даты и времени) var date2 = new Date('2015-02-24T21:23'); // создадим дату на основе строки с указанием часового пояса (формат YYYY-MM-DDThh:mm:ss.sss±hh:mm): var date3 = new Date('2015-02-24T22:02+03:00');
4. Создание даты посредством указания следующих параметров через запятую: год (4 цифры), месяц (отсчёт ведётся с 0), день (1..31), часы (0..23), минуты (0..59), секунды (0..59), миллисекунды (0..999). Причём обязательными из них являются только первые два параметра.
Пример создания даты с указанием только обязательных параметров:
// создадим дату 01.01.2015 (неуказанные параметры по умолчанию равны: число - 01, часы - 00, минуты - 00, секунды - 00, миллисекунды – 000). var date1 = new Date(2015,01); // создадим дату 24.01.2015, 21:23 var date2 = new Date(2015,01,24,21,23);
Примечание: Если Вам необходимо установить дату и время в UTC, то можно воспользоваться методом Date.UTC .
//1 пример var date1 = Date.UTC(2015,1,1); var date2 = new Date(date1); alert(date2.toUTCString()); //2 пример var newDate = new Date(Date.UTC(2015,1,1)); alert(newDate.toUTCString());
Получение отдельных компонентов даты и времени
В JavaScript для получения отдельных компонентов даты и времени предназначены следующие методы:
- getFullYear() – возвращает год, состоящий из 4 чисел;
- getMonth() – возвращает месяц в формате числа от 0 до 11 (0 – январь, 1 – февраль, 2 – март, . 11 – декабрь);
- getDate() – возвращает число месяца от 1 до 31;
- getHours() – возвращает количество часов от 0 до 23;
- getMinutes() – возвращает количество минут от 0 до 59;
- getSeconds() – возвращает количество секунд от 0 до 59;
- getMilliseconds() – возвращает количество миллисекунд от 0 до 999.
Все эти методы возвращают отдельные компоненты даты и времени в соответствии с часовым поясом установленном на локальном устройстве пользователя.
// создадим дату 11.11.2019 00:00 по UTC var newDate = new Date(Date.UTC(2019,11,11)); // получим компоненты даты, если на устройстве пользователя местное время равно UTC+10:00 newDate.getFullYear(); //2019 newDate.getMonth(); // 10 newDate.getDate(); // 11 newDate.getHours(); // 10 newDate.getMinutes(); // 0 newDate.getSeconds(); // 0 newDate.getMilliseconds(); // 0
Пример, в котором поприветствуем пользователя в зависимости от того какой сейчас у него интервал времени:
// получим текущее время пользователя и компоненты этого времени var now = new Date(), hour = now.getHours(), minute = now.getMinutes(), second = now.getSeconds(), message = ''; // определим фразу приветствия в зависимости от местного времени пользователя if (hourВ этом примере вывод времени в нужном формате осуществлён с использованием тернарного оператора.
В JavaScript имеются аналоги этих методов для получения отдельных компонентов даты и времени для часового пояса UTC+0. Эти методы называются аналогично, но с добавленным «UTC» после «get»: getUTCFullYear() , getUTCMonth() , getUTCDate() , getUTCHours() , getUTCMinutes() , getUTCSeconds() , getMilliseconds() .
Получить номер дня недели в JavaScript можно с помощью метода getDay() .
Данный метод возвращает число от 0 до 6 (0 – воскресенье, 1 – понедельник, . 6 – суббота).
Пример, в котором переведём день недели из числового в строковое представление:
var days =["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"]; // получим текущую дату var now = new Date(); // выведем в консоль день недели console.log('Сегодня ' + days[now.getDay()]);Получить количество миллисекунд прошедших с 01.01.1970 00:00:00 UTC в JavaScript можно с помощью метода getTime() .
Узнать разницу (в минутах) между часовым поясом локального устройства и UTC в JavaScript можно с помощью метода getTimezoneOffset() .
Установка отдельных компонентов даты и времени
В JavaScript установить отдельные компоненты даты и времени можно с помощью следующих методов объекта Date :
- setFullYear(year [, month, date]) – установка года (дополнительно можно задать ещё месяц и число);
- setMonth(month [, date]) – установка месяца от 0 до 11 (0 – январь, 1 – февраль, 2 – март, . 11 – декабрь); дополнительно этот метод позволяет ещё установить число;
- setDate(date) – установка числа;
- setHours(hour [, min, sec, ms]) – устанавливает час от 0 до 23 (дополнительно можно ещё установить минуты, секунды и миллисекунды);
- setMinutes(min [, [sec, ms]) – устаналивает минуты от 0 до 59 (дополнительно можно установить ещё секунды и миллисекунды);
- setSeconds(sec, [ms]) – устанавливает секунды от 0 до 59 (дополнительно можно установить ещё миллисекунды);
- setMilliseconds(ms) – устанавливает миллисекунды (от 0 до 999).
Все эти методы предназначены для установки даты и времени в часовом поясе, установленном на компьютере пользователя.
// создадим экземпляр объекта Date, содержащий текущую дату var newDate = new Date(); // установим год newDate.setFullYear(2019); // установим год и месяц newDate.setFullYear(2019, 08); // установим 20.09.2019 newDate.setFullYear(2019, 08, 20); // установим месяц newDate.setMonth(05); // установим месяц и число newDate.setMonth(05, 15); // установим число newDate.setDate(28); // установим час newDate.setHours(13); //установим час и минуты newDate.setHours(13,20);
В JavaScript установка даты и времени в часовом поясе UTC+0 осуществляется с помощью следующих методов: setUTCFullYear() , setUTCMonth() , setUTCDate() , setUTCHours() , setUTCMinutes() , setUTCSecondes() , setUTCMilliseconds() .
Установка даты и времени с помощью количества миллисекунд, прошедших с 01.01.1970 00:00:00 UTC осуществляется с помощью и тогда setTime() .
Кроме этого, в JavaScript указание некорректных компонентов даты и времени не приводит к ошибкам, они просто автоматически распределятся по остальным.
// число 44 распределится следующим образом: 44 - 31 = 13, 13 февраля 2019 newDate.setFullYear(2019, 01, 44);
Этот приём можно использовать когда вам нужно получить дату, отличающуюся от данной на определённый промежуток времени.
// дата, которая будет больше newDate на 7 дней newDate.setDate(date1.getDate() + 7); // дата, которая будет меньше newDate на 120 секунд newDate.setSeconds(date1.getSeconds()-120); // так можно установить последнее число предыдущего месяца для newDate newDate.setDate(0);
Преобразование даты в строку и её форматирование
В JavaScript методы, выполняющие преобразование даты в строку, можно разделить на 2 группы.
К первой группе можно отнести методы, которые выполняют это так, как это определено в браузере: toString() , toDateString() , toTimeString() , toUTCString() .
Метод toString() возвращает полное представление даты, toDateString() – только дату, toTimeString() – только время, toUTCString() – полное представление даты, но в часовом поясе UTC+0.
Т.к. строковые представления, которые должны возвращать эти методы чётко не определены в стандарте, то они могут отличаться в разных браузерах.
Ко второй группе можно отнести методы с учётом часового пояса и языка локального компьютера: toLocaleString() – дату и время, toLocaleDateString() – только дату, toLocaleTimeString() – только время.
Методы toLocaleString() , toLocaleDateString() , toLocaleTimeString() имеют 2 необязательных параметра. Первый параметр предназначен для явного указания локали, второй - для задания опций форматирования.
Если локаль явно не установлена или undefined , то браузер берёт ту, которую он имеет по умолчанию.
Кроме этого, в JavaScript имеется ещё метод toISOString() . Он возвращает строку, содержащую дату и время в формате ISO ( YYYY-MM-DDTHH:mm:ss.sssZ ).
// создадим дату 15.04.2019 18:43:59 (в часовом поясе пользователя) var newDate = new Date(2019, 03, 15, 18, 43, 59); console.log(newDate.toString()); // Mon Apr 15 2019 18:43:59 GMT+1000 (Владивосток, стандартное время) console.log(newDate.toDateString()); // Mon Apr 15 2019 console.log(newDate.toTimeString()); // 18:43:59 GMT+1000 (Владивосток, стандартное время) console.log(newDate.toLocaleString()); // 15.04.2019, 18:43:59 console.log(newDate.toLocaleDateString()); // 15.04.2019 console.log(newDate.toLocaleTimeString()); // 18:43:59 console.log(newDate.toUTCString()); // Mon, 15 Apr 2019 08:43:59 GMT console.log(newDate.toISOString()); // 2019-04-15T08:43:59.000Z
Метод для преобразования строки в дату
JavaScript для преобразования строки в дату использует метод Date.parse() . Этот метод может преобразовать строку, если она выполнена в соответствии со стандартом RFC2822 или ISO 8601.
В этом уроке рассмотрим стандарт ISO 8601, в котором строка должна иметь следующий формат: YYYY-MM-DDThh:mm:ss.sssZ .
- YYYY – год, состоящий из 4 цифр;
- MM – месяц, состоящий из 2 цифр (01 = Январь, 02 = Февраль, и т.д.);
- DD – день месяца, состоящий из 2 цифр (01..31);
- T – символ для разделения даты и времени;
- hh – количество часов (00..23);
- mm - количество минут (00..59);
- ss - количество секунд (00..59);
- sss - количество миллисекунд (0..999);
- Z - символ, который означает, что время задаётся в формате UTC. Если Вам необходимо вместо UTC установить часовой пояс, то букву " Z " следует заменить значением +hh:mm или -hh.mm .
Если строка, содержащая дату и время, задана не в формате RFC2822 или ISO 8601, то метод JavaScript Date.parse() всё равно может выполнить её преобразование, но результат в этом случае могут оказаться непредсказуемым.
//дата в формате ISO var date1 = new Date("2015-04-02"); alert(date1); //дата и время в формате ISO var date2 = new Date("2015-02-02T11:40"); alert(date2); //дата и время в часовом поясе +03:00 в формате ISO var date3 = new Date("2015-02-02T11:40+03:00"); alert(date3);