bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Парсинг даты по формату?

Здравствуйте. А не подскажите, как написать функцию котора принимает строковое значение и формат даты, и возвращает объект дата, что-то типа как moment('2019-12-11', 'YYYY-MM-DD') ? Спасибо.
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 1
bogdan_uman
@bogdan_uman Автор вопроса
шлЫмазл неукЪ-поцЪ
Нагуглить ничего не смог, вот такую функцию реализовал
const parseDate = (str, format) => {
  if (!format) return new Date(str);

  const mask = {};
  for (const { 0: key, index } of format.matchAll(/(SSS|ss|mm|HH|DD|MM|YYYY|YY)/g)) {
    mask[key] = parseInt(str.substr(index, key.length)) || 0;
  }

  const year = mask.YYYY || (mask.YY && `20${mask.YY}`) || 0;
  const month = (mask.MM || 1) - 1;
  const day = mask.DD || 0;
  const hour = mask.HH || 0;
  const minute = mask.mm || 0;
  const second = mask.ss || 0;
  const millisecond = mask.SSS || 0;
  return new Date(Date.UTC(year, month, day, hour, minute, second, millisecond));
};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы