Многие приложения, которые вы создаете, будет иметь какой-то компонент даты, будь то дата создания ресурса или временем деятельности.
Работа с форматированием даты и метки времени может быть исчерпана. В этом руководстве вы узнаете, как получить текущую дату в различных форматах в JavaScript.
JavaScript Date объект
JavaScript имеет встроенный Дата Объект, который хранит дату и время и предоставляет методы для обработки их.
Чтобы создать новый экземпляр Дата Объект, используйте Новый ключевое слово:
const date = new Date();
Дата Объект содержит Номер Это представляет миллисекунды, прошедшие с момента эпохи, то есть 1 января 1970 года.
Вы можете пройти строку даты в Дата Конструктор для создания объекта на указанную дату:
const date = new Date('Jul 12 2011');Чтобы получить текущий год, используйте GetLyear () Способ экземпляра Дата объект. GetLyear () Метод возвращает год указанной даты в Дата конструктор:
const currentYear = date.getFullYear(); console.log(currentYear); //2020
Точно так же существуют методы получения текущего дня месяца и текущего месяца:
const today = date.getDate(); const currentMonth = date.getMonth() + 1;
getdate () Метод возвращает текущий день месяца (1-31).
GetMonth () Метод возвращает месяц указанной даты. Одна точка, чтобы заметку о GetMonth () Способ заключается в том, что он возвращает 0-индексированные значения (0-11), где 0 на январь и 11 за декабрь. Следовательно, добавление 1 к нормализации ценности месяца.
Дата сейчас
сейчас () это статический метод Дата объект. Возвращает значение в миллисекундах, которые представляют время, прошедшее с момента эпохи. Вы можете пройти в миллисекунды, возвращенные из сейчас () Метод в Дата Конструктор для создания нового Дата объект:
const timeElapsed = Date.now(); const today = new Date(timeElapsed);
Форматирование даты
Вы можете отформатировать дату в несколько форматов (GMT, ISO и т. Д.) Использование методов Дата объект.
TODATESTRING () Метод возвращает дату в читаемом формате человека:
today.toDateString(); // "Sun Jun 14 2020"
ToisoString () Метод возвращает дату, которая следует за расширенным форматом ISO 8601:
today.toISOString(); // "2020-06-13T18:30:00.000Z"
ToutcString () Метод возвращает дату в формате часового пояса UTC:
today.toUTCString(); // "Sat, 13 Jun 2020 18:30:00 GMT"
Толокаледатестроинг () Метод возвращает дату в зависимости от местности формата:
today.toLocaleDateString(); // "6/14/2020"
Вы можете найти полную ссылку на Дата Методы в Документация MDN Отказ
Функция нестандартной даты
Помимо форматов, упомянутых в вышеуказанном разделе, ваше приложение может иметь другой формат для данных. Это может быть в YY/DD/мм или yyyy-dd-mm формат или что-то подобное.
Чтобы решить эту проблему, было бы лучше создать многоразовую функцию, чтобы ее можно было использовать в нескольких проектах.
Таким образом, в этом разделе давайте создадим функцию утилиты, которая вернет дату в формате, указанном в аргументе функции:
const today = new Date();
function formatDate(date, format) {
//
}
formatDate(today, 'mm/dd/yy');Вам нужно заменить строки «мм», «ДД», «YY» с соответствующим месяцем, дневным и летним значениями из строки формата, передаваемой в аргументе.
Чтобы сделать это, вы можете использовать заменить () Метод, как показано ниже:
format.replace('mm', date.getMonth() + 1);Но это приведет к большому количеству цепочковых методов и затрудняет обслуживание, поскольку вы пытаетесь сделать функцию более гибкой:
format.replace('mm', date.getMonth() + 1)
.replace('yy', date.getFullYear())
.replace('dd', date.getDate());Вместо методов цепочки вы можете использовать регулярное выражение с заменить () метод.
Сначала создайте объект, который будет представлять собой пару клавишной пары подстроки и ее соответствующее значение:
const formatMap = {
mm: date.getMonth() + 1,
dd: date.getDate(),
yy: date.getFullYear().toString().slice(-2),
yyyy: date.getFullYear()
};Далее используйте регулярное выражение, чтобы соответствовать и заменить строки:
formattedDate = format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]);
Полная функция выглядит так:
function formatDate(date, format) {
const map = {
mm: date.getMonth() + 1,
dd: date.getDate(),
yy: date.getFullYear().toString().slice(-2),
yyyy: date.getFullYear()
}
return format.replace(/mm|dd|yy|yyy/gi, matched => map[matched])
}Вы также можете добавить возможность форматировать Timestamps в функции.
Заключение
Я надеюсь, что у вас сейчас лучше понимание Дата объект в JavaScript. Вы также можете использовать другие сторонние библиотеки, такие как Датенью и момент обрабатывать даты в вашем приложении.
До следующего раза оставайся в безопасности и держись сущности.
Оригинал: “https://www.freecodecamp.org/news/javascript-date-now-how-to-get-the-current-date-in-javascript/”