Анализ даты с использованием строки формата токена Unicode с символами-разделителями - PullRequest
0 голосов
/ 09 ноября 2018

Я использую date-fns 2 (alpha) , чтобы проанализировать строку даты в JavaScript Date. Эта версия библиотеки использует токены юникода для строк формата / разбора.

Я бы хотел иметь возможность разбирать строку даты, не обращая особого внимания на символы разделителя.

например. Сказать, что хочу разобрать следующую дату: «18/11/2018». Я могу использовать формат dd/MM/yyyy. Который прекрасно работает:

> dateFns.parse('18/11/2018', 'dd/MM/yyyy', new Date());
2018-11-18T00:00:00.000Z

Но, скажем, я хочу разобрать дату, отформатированную как "18 11 2018", в исходной строке формата произойдет сбой:

> dateFns.parse('18 11 2018', 'dd/MM/yyyy', new Date());
Invalid Date

Учитывая, что символ-разделитель не влияет на значение самой даты, есть ли способ создать строку формата, которая по существу игнорирует ее?

1 Ответ

0 голосов
/ 09 ноября 2018

Если вы пытаетесь преобразовать строку даты в формате dd mm yyyy с различными разделителями в объект даты js (в UTC), вы можете использовать регулярное выражение для анализа строк, а затем new Date(Date.UTC(...)). Например:

const convertDate = (dstring) => {
  let [d, m, y] = dstring.match(/\d+/g);
  return new Date(Date.UTC(y, m - 1, d));
}

// the below demonstrates output for a variety of date string separators

const dstrings = ['18/11/2018', '18 11 2018', '18-11-2018', '18.11.2018'];

for (let dstring of dstrings) {
  let date = convertDate(dstring);
  console.log(JSON.stringify(date));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...