Рубрики
Без рубрики

Ultimate Guide к дате JavaScript и Moment.js

Добро пожаловать в наше окончательное руководство по объекту даты JavaScript и Moment.js. Этот учебник научит вам все, что вам нужно знать о работе с датами и временами в ваших проектах. Как создать объект date objectget текущая дата даты и временной даты (); // пн 10 августа 2019

Автор оригинала: FreeCodeCamp Community Member.

Добро пожаловать в наше высшее руководство по JavaScript Дата объект и момент .js. Этот учебник научит вам все, что вам нужно знать о работе с датами и временами в ваших проектах.

Как создать дату объекта

Получить текущую дату и время

const now = new Date();

// Mon Aug 10 2019 12:58:21 GMT-0400 (Eastern Daylight Time)

Получите дату и время с отдельными ценностями

const specifiedDate = new Date(2019, 4, 29, 15, 0, 0, 0);

// Wed May 29 2019 15:00:00 GMT-0400 (Eastern Daylight Time)

Синтаксис Дата (год, месяц, день, час, минута, вторая, миллисекунда) Отказ

Обратите внимание, что месяцы с нулевым индексированным, начиная с января в 0 и заканчиваясь с декабря в 11.

Получить дату и время от времени

const unixEpoch = new Date(0);

Это представляет время в четверг, 1 января 1970 года (UTC) или время EPOCH UNIX. EPOCH UNIX важен, потому что это какой JavaScript, Python, PHP и другие языки и системы используют внутренне, чтобы рассчитать текущее время.

Новая дата (MS) Возвращает дату эпохи плюс количество миллисекунд, в которых вы проходите. Через день 86 400 000 миллисекунд так:

const dayAfterEpoch = new Date(86400000);

Вернется в пятницу, 2 января 1970 года (UTC).

Получите дату и время от строки

const stringDate = new Date('May 29, 2019 15:00:00');

// Wed May 29 2019 15:00:00 GMT-0400 (Eastern Daylight Time)

Узнать дату таким образом, очень гибкий. Все примеры ниже возврата действительны Дата объекты:

new Date('2019-06') // June 1st, 2019 00:00:00
new Date('2019-06-16') // June 16th, 2019
new Date('2019') // January 1st, 2019 00:00:00
new Date('JUNE 16, 2019')
new Date('6/23/2019')

Вы также можете использовать Date.carnse () Способ возвращения количества миллисекундов с момента эпохи (1 января 1970):

Date.parse('1970-01-02') // 86400000
Date.parse('6/16/2019') // 1560610800000

Установка часового пояса

При прохождении строки даты без настройки часового пояса JavaScript предполагает, что дата/время находятся в UTC, прежде чем преобразовать его в часовой пояс вашего браузера:

const exactBirthdate = new Date('6/13/2018 06:27:00');

console.log(exactBirthdate) // Wed Jun 13 2018 06:27:00 GMT+0900 (Korean Standard Time)

Это может привести к ошибкам, где возвращается дата, отключена на многих часах. Чтобы избежать этого, пройдите через часовой пояс вместе со строкой:

const exactBirthdate = new Date('6/13/2018 06:27:00 GMT-1000');

console.log(exactBirthdate) // Thu Jun 14 2018 01:27:00 GMT+0900 (Korean Standard Time)

/*
These formats also work:

new Date('6/13/2018 06:27:00 GMT-10:00');
new Date('6/13/2018 06:27:00 -1000');
new Date('6/13/2018 06:27:00 -10:00');
*/

Вы также можете пройти некоторые, но не все, коды часовых поясов:

const exactBirthdate = new Date('6/13/2018 06:27:00 PDT');

console.log(exactBirthdate) // Thu Jun 14 2018 01:27:00 GMT+0900 (Korean Standard Time)

Дата объектных методов

Часто вам не понадобится вся дата, но просто часть этого, как день, неделя или месяц. К счастью, есть ряд методов, чтобы сделать только что:

const birthday = new Date('6/13/2018 06:27:39');

birthday.getMonth() // 5 (0 is January)
birthday.getDate() // 13
birthday.getDay() // 3 (0 is Sunday)
birthday.getFullYear() // 2018
birthday.getTime() // 1528838859000 (milliseconds since the Unix Epoch)
birthday.getHours() // 6
birthday.getMinutes() // 27
birthday.getSeconds() // 39
birthday.getTimezoneOffset() // -540 (time zone offset in minutes based on your browser's location)

Сделать работу с датами легче с моментом.

Получение дат и времена правы не маленькая задача. Кажется, каждая страна имеет другой способ форматирования дат, а учета разных часовых поясов и летнее время/летнее время занимает, ну, много времени. Вот где moment.js сияет – он делает разбор, форматирование и отображение дат ветерок.

Чтобы начать использовать moment.js, установите его через менеджер пакета, как NPM или добавьте его на свой сайт через CDN. Увидеть Moment.js Документация Больше подробностей.

Получите текущую дату и время с помощью moment.js

const now = moment();

Это возвращает объект с датой и временем на основе местоположения вашего браузера вместе с другой информацией о локали. Это похоже на родной JavaScript’s Новая дата () Отказ

Получите дату и время от временной техники с помощью moment.js

Похоже на Новая дата (MS) , вы можете пройти количество миллисекунд с момента эпохи на момент () :

const dayAfterEpoch = moment(86400000);

Если вы хотите получить дату, используя Timestamp Unix в считанные секунды, вы можете использовать Unix () Метод:

const dayAfterEpoch = moment.unix(86400);

Получите дату и время от строки с помощью moment.js

Разбор даты из строки с помощью moment.js легко, и библиотека принимает строки в формате даты даты ISO 8601 или RFC 2822, а также любую строку, принятую JavaScript Дата объект.

Строки ISO 8601 рекомендуются поскольку он является широко принятым форматом. Вот некоторые примеры:

moment('2019-04-21');
moment('2019-04-21T05:30');
moment('2019-04-21 05:30');

moment('20190421');
moment('20190421T0530');

Установка часового пояса с помощью moment.js

До сих пор мы использовали moment.js в Локальный режим , что означает, что любой вход предполагается, что является локальной датой или временем. Это похоже на, как родной JavaScript Дата Работы объекта:

const exactBirthMoment = moment('2018-06-13 06:27:00');

console.log(exactBirthMoment) // Wed Jun 13 2018 06:27:00 GMT+0900 (Korean Standard Time)

Однако, чтобы установить часовой пояс, вы должны сначала получить момент объекта в Режим UTC:

const exactBirthMoment = moment.utc('2018-06-13 06:27:00');

console.log(exactBirthMoment) // Wed Jun 13 2018 15:27:00 GMT+0900 (Korean Standard Time)

Затем вы можете настроить разницу в зонах времени с UTCOFTSET () Метод:

const exactBirthMoment = moment.utc('2018-06-13 06:27:00').utcOffset('+10:00');

console.log(exactBirthMoment) // Wed Jun 13 2018 06:27:00 GMT+0900 (Korean Standard Time)

Вы также можете установить смещение UTC как число или строку:

moment.utc().utcOffset(10) // Number of hours offset
moment.utc().utcOffset(600) // Number of minutes offset
moment.utc().utcOffset('+10:00') // Number of hours offset as a string

Чтобы использовать названные зоны времени ( America/los_angeles ) или коды часовых поясов ( PDT ) с моментами объектами, проверьте Момент времени пояса библиотека.

Формировать дату и время с помощью moment.js

Один из основных сил, которые Moment.js имеет на родном JavaScript Дата Объекты – насколько легко форматировать выходную дату и время. Просто цепь Формат () Метод до мгновенного объекта даты и пропустите его строку формата в качестве параметра:

moment().format('MM-DD-YY'); // "08-13-19"
moment().format('MM-DD-YYYY'); // "08-13-2019"
moment().format('MM/DD/YYYY'); // "08/13/2019"
moment().format('MMM Do, YYYY') // "Aug 13th, 2019"
moment().format('ddd MMMM Do, YYYY HH:mm:ss') // "Tues August 13th, 2019 19:29:20"
moment().format('dddd, MMMM Do, YYYY -- hh:mm:ss A') // "Tuesday, August 13th, 2019 -- 07:31:02 PM"

Вот стол с некоторыми обычными токенами форматирования:

Yyyy. 2019 4-значный год
Yy. 19 2-значный год
Мммм август Название полного месяца
М-м-м Август Сокращенное имя месяца
Мм 08 2-значный месяц
M 8 1-значный месяц
Дд 225 День года
Дд 13 День месяца
Делать 13-й День месяца с порядковым
DDDD среда Имя полного дня
дд Мы б Сокращенное дневное имя
HH. 17 Часы в течение 24 часов времени
HH. 05 Часы за 12 часов времени
мм 32 Минут
SS 19 Секунды
a до полудня после полудня ANTE или POST MERIDIEM
A ДО ПОЛУДНЯ ПОСЛЕ ПОЛУДНЯ Captized Ante или Post Meridiem
ZZ. +0900 Смещение часового пояса от UTC
X 1410715640.579 Munix Timestamp в считанные секунды
Хх 1410715640579 Timestamp Unix в миллисекундах

Увидеть Moment.js Документы Для более форматирования токенов.

Работа с JavaScript Дата Объекты и Moment.js не должны быть трудоемкими. Теперь вы должны знать более чем достаточно, чтобы начать с обоих.

Оригинал: “https://www.freecodecamp.org/news/the-ultimate-guide-to-javascript-date-and-moment-js/”