Преобразование строки полной даты, такой как «Суббота, 23 марта 2019 года», в Javascript Date () - PullRequest
0 голосов
/ 23 марта 2019

Как мне преобразовать строку типа «Суббота, 23 марта 2019 года» в дату Javascript?

По какой-то причине в нем указана недопустимая дата, а другие вопросы, подобные этому, пытаются преобразовать строки типа «23-03-2019 10:00» и т. Д. В Date, тогда как это скорее полная строка даты.

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Лучшая ставка будет использовать библиотеку, такую ​​как moment js , чтобы проанализировать эту строку и сообщить ожидаемый формат:

const str = "Saturday 23rd March 2019";
const m = moment(str, "dddd Do MMMM YYYY");

console.log(m.toDate())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

Если форматирование не согласовано, вам нужно написать собственный анализатор, который не будет тривиальным упражнением.

0 голосов
/ 23 марта 2019

Это на самом деле "число" 23-го, которое вызывает проблему. В противном случае строка как есть будет преобразована в дату. Я использовал регулярное выражение, чтобы заменить «23-е» на «23». Также брошенный в другом примере, чтобы захватить "1-ое" также.

var dateString = "Saturday 23rd March 2019";

var cleanDateString = dateString.replace(/(\d+)(rd|st|nd|th)/, "$1");

console.log(new Date(cleanDateString));

dateString = "Friday 1st March 2019";

cleanDateString = dateString.replace(/(\d+)(rd|st|nd|th)/, "$1");

console.log(new Date(cleanDateString));
...