- Полное руководство по датам в JavaScript
- Объект Date
- Инициализируйте объект Date
- Часовые пояса
- Преобразование даты и форматирование
- Методы получения объекта Date
- Редактирование даты
- Получить текущую метку времени
- JavaScript старается работать без ошибок
- Формат даты в соответствии с локалью
- Сравнение двух дат
- Как вывести дату с помощью javascript
- Синтаксис
- Параметры
- Описание
- Свойства
- Методы
- Экземпляры объекта Date
- Методы
- Примеры
- Пример: несколько способов создания объекта Date
- Пример: двухциферный год отображается на 1900 — 1999 года
- Пример: вычисление затраченного времени
- Работа с датой и временем в JavaScript
- Создание даты – 4 примера
- Получение отдельных компонентов даты и времени
- Установка отдельных компонентов даты и времени
- Преобразование даты в строку и её форматирование
Полное руководство по датам в JavaScript
Работа с датами может быть сложной . Независимо от технологии, разработчики чувствуют боль.
JavaScript предоставляет нам функциональность обработки даты при помощи мощного встроенного объекта: Date .
В этой статье не говорится о Moment.js , который, я считаю, является лучшей библиотекой для обработки дат, и вы почти всегда должны использовать ее при работе с датами.
Объект Date
Экземпляр объекта Date представляет текущий момент времени. Несмотря на имя Date , он также обрабатывает время.
Инициализируйте объект Date
Мы инициализируем объект Date с помощью конструкции:
Это создает объект Date, указывающий на текущий момент времени.
Внутренне даты выражаются в миллисекундах с 1 января 1970 года (UTC).
Возможно, вы знакомы с отметкой времени UNIX: она представляет количество секунд , прошедших с этой известной даты.
Временные метки UNIX указываются в секундах а JavaScript объект Date работает с миллисекундами, это важно помнить работая с timestamp
Если у нас есть отметка времени UNIX, мы можем создать экземпляр объекта Date с помощью:
Если мы передадим 0, мы получим объект Date, который представляет время на 1 января 1970 года (UTC):
Если мы передаем строку, а не число, тогда объект Date использует метод parse , чтобы определить, какую дату вы передаете. Примеры:
Здесь много гибкости. Вы можете добавить или опустить ведущий ноль в месяцах или днях.
Будьте осторожны с позицией месяц / деня, иначе вы можете ошибочно истолковать месяц как день.
Вы также можете использовать Date.parse :
Date.parse вернет метку времени (в миллисекундах), а не объект Date.
Вы также можете передать набор упорядоченных значений, которые представляют каждую часть даты: год, месяц (начиная с 0), день, час, минуты, секунды и миллисекунды:
Минимум должен быть 3 параметра, но большинство движков JavaScript также интерпретируют меньшее их число:
В любом из этих случаев полученная дата относится к часовому поясу вашего компьютера. Это означает, что два разных компьютера могут выводить разные значения для одного и того же объекта даты.
JavaScript, без какой-либо информации о часовом поясе, будет считать дату UTC и автоматически выполнит преобразование в текущий часовой пояс компьютера.
Итак, суммируя, вы можете создать новый объект Date четырьмя способами
- не передавая никаких параметров, создает объект Date, который представляет текущую дату и время
- передача числа, которое представляет миллисекунды с 1 января 1970 года
- передавая строку, которая представляет дату
- передавая набор параметров, которые представляют различные части даты
Часовые пояса
При инициализации даты вы можете передать часовой пояс, поэтому дата не будет считается UTC, а затем конвертироваться в ваш местный часовой пояс.
Вы можете указать часовой пояс, добавив его в формате +HOURS или добавив имя часового пояса в скобках:
Если вы укажете неправильное имя часового пояса в скобках, JavaScript по умолчанию будет считать дату UTC без вывода ошибки.
Если вы укажете неправильный числовой формат, JavaScript будет выдавать сообщение об ошибке «Invalid Date».
Преобразование даты и форматирование
Для данного объекта Date существует множество методов, которые сгенерируют строку с этой датой:
Методы получения объекта Date
Объект Date предлагает несколько методов для проверки его значения. Все это зависит от текущего часового пояса компьютера:
Существуют эквивалентные версии этих методов в формате UTC, которые возвращают значение UTC, а не значения, адаптированные к вашему текущему часовому поясу:
Редактирование даты
Объект Date предлагает несколько методов для редактирования значения даты:
setDay и setMonth принимают нумерацию с 0, например, март месяц имеет индекс 2.
Забавный факт: эти методы «пересекаются», поэтому, если вы, например, установите date.setHours(48) , он также будет увеличивать день.
Полезно знать: вы можете добавить более одного параметра, чтобы setHours() также установил минуты, секунды и миллисекунды: setHours(0, 0, 0, 0) — то же самое относится к методам setMinutes и setSeconds .
Методы set также имеют эквивалент UTC:
Получить текущую метку времени
Если вы хотите получить текущую метку времени в миллисекундах, вы можете использовать сокращение
JavaScript старается работать без ошибок
Обращать внимание. Если вы передадите большее количеством дней в месяце, ошибок не будет, и дата перейдет к следующему месяцу:
То же самое касается месяцев, часов, минут, секунд и миллисекунд.
Формат даты в соответствии с локалью
Internationalization API, хорошо поддерживается в современных браузерах (заметное исключение: UC Browser), позволяя переводить даты.
Он предоставляет объектом Intl , который также помогает локализовать числа, строки и валюты.
Мы будем использовать для преобразования даты метод Intl.DateTimeFormat() .
Отформатируйте дату в соответствии с локалью компьютера по умолчанию:
Отформатируйте дату в соответствии с другим языком:
Метод Intl.DateTimeFormat принимает необязательный параметр, который позволяет настроить вывод. Чтобы также отображать часы, минуты и секунды:
Сравнение двух дат
Вы можете рассчитать разницу между двумя датами, используя Date.getTime() :
Таким же образом вы можете проверить, равны ли две даты:
Имейте в виду, что метод getTime() возвращает количество миллисекунд, поэтому при сравнении необходимо учитывать время. July 10, 2018 07:22:13 не равно July 10, 2018 . В этом случае вы можете использовать метод setHours(0, 0, 0, 0) для сброса времени.
Источник
Как вывести дату с помощью javascript
Создаёт экземпляр объекта Date , представляющего собой момент времени. Объект Дата содержит число миллисекунд прошедших с 1 января 1970 г. UTC
Синтаксис
Обратите внимание: объекты Date могут быть созданы только путём вызова функции Date в качестве конструктора: обычный вызов функции (то есть, без использования оператора new ) вернёт строку вместо объекта Date ; в отличие от других объектных типов JavaScript, объекты Date не имеют литерального синтаксиса.
Параметры
Обратите внимание: если функция Date вызывается в качестве конструктора с более, чем одним аргументом, значения, большие логического диапазона (например, 13 в качестве номера месяца или 70 для значения минут) «переметнутся» на соседние значения. Например, вызов new Date(2013, 13, 1) эквивалентен вызову new Date(2014, 1, 1) , оба создадут дату 2014-02-01 (нумерация месяцев начинается с нуля). Тоже самое действует и для других значений: вызов new Date(2013, 2, 1, 0, 70) эквивалентен вызову new Date(2013, 2, 1, 1, 10) — оба вызова создадут дату 2013-03-01T01:10:00 .
Обратите внимание: если функция Date вызывается в качестве конструктора с более чем одним аргументом, то указанные аргументы интерпретируются как локальное время. Если аргументы указывают время в UTC, используйте new Date( Date.UTC(. ) ) с теми же аргументами.
Описание
- Если никаких аргументов передано не было, конструктор создаёт объект Date для текущих даты и времени, согласно системным настройкам.
- Если передано как минимум два аргумента, отсутствующие аргументы устанавливаются в стартовые значения — день месяца 1 и время полуночи.
- Дата в JavaScript измеряется в миллисекундах, прошедших с полуночи 1 января 1970 года по UTC. День содержит 86 400 000 миллисекунд. Диапазон дат объекта Date варьируется от -100 000 000 до 100 000 000 дней относительно 1 января 1970 года по UTC.
- Объект Date обеспечивает универсальное поведение на всех платформах. Значение времени может передаваться между системами для представления одинакового момента во времени и, если оно используется для создания локального объекта даты, будет отражать местный эквивалент времени.
- Объект Date поддерживает несколько методов для работы с UTC (всемирным координированным временем), наряду с методами работы с местным временем. UTC, также известное как среднее время по Гринвичу (GMT), ссылается на время, установленное Всемирным стандартом времени. Местное время — это время на компьютере, на котором выполняется JavaScript.
- Вызов объекта Date в качестве функции (то есть, без использования оператора new ) вернёт строку, представляющую текущие дату и время.
Свойства
Методы
Экземпляры объекта Date
Все экземпляры объекта Date наследуются от Date.prototype (en-US) . Объект прототипа конструктора Date может быть изменён, чтобы затронуть все экземпляры объекта Date .
Методы
Примеры
Пример: несколько способов создания объекта Date
Следующие примеры показывают несколько способов создания дат в JavaScript:
Обратите внимание: разбор строкового представления дат с помощью конструктора Date (так же как эквивалентный ему метод Date.parse ) может иметь различия и несоответствия в браузерах.
Пример: двухциферный год отображается на 1900 — 1999 года
Для того, чтобы создать и получить даты между 0 и 99 годом, нужно использовать методы Date.prototype.setFullYear() и Date.prototype.getFullYear() .
Пример: вычисление затраченного времени
Следующие примеры показывают, как определить разницу во времени между двумя датами в JavaScript:
Источник
Работа с датой и временем в JavaScript
На этом уроке мы познакомимся с объектом Date языка JavaScript и научимся его использовать на практике.
Создание даты – 4 примера
В JavaScript создание даты осуществляется с помощью объекта Date . Объект Date представляет собой точку на оси времени и предназначен для хранения даты и времени с точностью до миллисекунды.
Примеры создания даты в JavaScript.
1. Создание текущей даты и времени.
Получить текущую дату и время в JavaScript осуществляется посредством создания экземпляра объекта Date без указания параметров:
Если нужно получить только сегодняшнюю дату в формате строки, то можно воспользоваться методом toLocaleDateString :
Текущее время пользователя можно получить так:
Дату и время в формате строки можно получить следующим образом:
2. Создание даты путём указания объекту Date количества миллисекунд, прошедших с 1 января 1970 00:00:00 UTC.
3. Создание даты посредством указания её объекту Date в виде строки.
При этом варианте создания даты JavaScript попытается понять переданную ей строку и сформировать на основе её дату. Преобразование строки в дату в JavaScript осуществляется с помощью метода Date.parse .
4. Создание даты посредством указания следующих параметров через запятую: год (4 цифры), месяц (отсчёт ведётся с 0), день (1..31), часы (0..23), минуты (0..59), секунды (0..59), миллисекунды (0..999). Причём обязательными из них являются только первые два параметра.
Пример создания даты с указанием только обязательных параметров:
Примечание: Если Вам необходимо установить дату и время в UTC, то можно воспользоваться методом Date.UTC .
Получение отдельных компонентов даты и времени
В 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.
Все эти методы возвращают отдельные компоненты даты и времени в соответствии с часовым поясом установленном на локальном устройстве пользователя.
Пример, в котором поприветствуем пользователя в зависимости от того какой сейчас у него интервал времени:
В этом примере вывод времени в нужном формате осуществлён с использованием тернарного оператора.
В JavaScript имеются аналоги этих методов для получения отдельных компонентов даты и времени для часового пояса UTC+0. Эти методы называются аналогично, но с добавленным «UTC» после «get»: getUTCFullYear() , getUTCMonth() , getUTCDate() , getUTCHours() , getUTCMinutes() , getUTCSeconds() , getMilliseconds() .
Получить номер дня недели в JavaScript можно с помощью метода getDay() .
Данный метод возвращает число от 0 до 6 (0 – воскресенье, 1 – понедельник, . 6 – суббота).
Пример, в котором переведём день недели из числового в строковое представление:
Получить количество миллисекунд прошедших с 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).
Все эти методы предназначены для установки даты и времени в часовом поясе, установленном на компьютере пользователя.
В JavaScript установка даты и времени в часовом поясе UTC+0 осуществляется с помощью следующих методов: setUTCFullYear() , setUTCMonth() , setUTCDate() , setUTCHours() , setUTCMinutes() , setUTCSecondes() , setUTCMilliseconds() .
Установка даты и времени с помощью количества миллисекунд, прошедших с 01.01.1970 00:00:00 UTC осуществляется с помощью и тогда setTime() .
Кроме этого, в JavaScript указание некорректных компонентов даты и времени не приводит к ошибкам, они просто автоматически распределятся по остальным.
Этот приём можно использовать когда вам нужно получить дату, отличающуюся от данной на определённый промежуток времени.
Преобразование даты в строку и её форматирование
В JavaScript методы, выполняющие преобразование даты в строку, можно разделить на 2 группы.
К первой группе можно отнести методы, которые выполняют это так, как это определено в браузере: toString() , toDateString() , toTimeString() , toUTCString() .
Метод toString() возвращает полное представление даты, toDateString() – только дату, toTimeString() – только время, toUTCString() – полное представление даты, но в часовом поясе UTC+0.
Т.к. строковые представления, которые должны возвращать эти методы чётко не определены в стандарте, то они могут отличаться в разных браузерах.
Ко второй группе можно отнести методы с учётом часового пояса и языка локального компьютера: toLocaleString() – дату и время, toLocaleDateString() – только дату, toLocaleTimeString() – только время.
Методы toLocaleString() , toLocaleDateString() , toLocaleTimeString() имеют 2 необязательных параметра. Первый параметр предназначен для явного указания локали, второй — для задания опций форматирования.
Если локаль явно не установлена или undefined , то браузер берёт ту, которую он имеет по умолчанию.
Источник