Я хотел бы попросить вашей помощи в этом. Мы реализовали функцию, при которой, если мы выбрали дату из календаря, она будет отображать выбранную дату. Хотя мы можем отображать правильную дату, она не в правильном формате. Мне нужно извлечь даты из этого примера заявления: EndDateTime=2021-05-29T02%3A00%3A00%2B08%3A00T01%3A00%3A00.000Z,StartDateTime=2021-05-29T02%3A00%3A00%2B08%3A00T00%3A00%3A00.000Z

Мне нужно извлечь начальную и конечную дату с помощью javascript. И это должно быть в формате ДД-ММММ-ГГГГ. Надеюсь, вы можете помочь мне здесь. благодаря.

0
xoxo4yaps 27 Май 2021 в 22:38

1 ответ

Я хотел бы посмотреть, не сможете ли вы очистить свой вывод немного ближе к источнику. Но поскольку я не знаком с вашим кодом, вот метод извлечения даты в формате dd-MMMM-YYYY из этой строки. Аналогичная логика применима и к дате начала.

let str = 'EndDateTime=2021-05-29T02%3A00%3A00%2B08%3A00T01%3A00%3A00.000Z,StartDateTime=2021-05-29T02%3A00%3A00%2B08%3A00T00%3A00%3A00.000Z';
let parts = str.split(',');
// extract only the date you want and remove the URI encoding
let endDateTimeStamp = decodeURIComponent(parts[1].split('=')[1]);

// generate a date, drop the time portion as it will result in an invalid date
let endDate = new Date(endDateTimeStamp.split('T')[0]);

// JavaScript doesn't have much in the way of built-in methods for formatting dates. This is one option.
let year = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(endDate);
let month = new Intl.DateTimeFormat('en', { month: 'long' }).format(endDate);
let day = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(endDate);

let formattedEndDate = `${day}-${month}-${year}`;
console.log(formattedEndDate);

См. документацию по Intl.DateTimeFormat . Если у вас есть локаль (возможно, «Великобритания»?), которая форматируется в dd-MMMM-YYYY, вы можете использовать ее и избавиться от необходимости разбирать дату на отдельные компоненты.

0
nbrown 27 Май 2021 в 23:31