Как преобразовать даты JSON в формат Календера? - PullRequest
3 голосов
/ 08 апреля 2019

Я пытаюсь вставить события в календарь. проблема в том, что мои события структурированы так: xx/xx/xxxx и календарь использует другой формат xx-xx-xxxx. Как мне сделать это преобразование?

Я преобразовал даты из формата JSON в строку, но не могу изменить / на -.

data.forEach(function (element) {

    let date = new Date(element.sessionDate)
    datesArr.push(date.toLocaleDateString())
})

console.log(datesArr)

А теперь мой массив выглядит так:

0: "24/12/2018"

1: «27.12.2008»

2: «1/3/2019»

3: «1/3/2019»

4: «07.01.2009»

Мой ожидаемый результат для календаря для получения событий должен быть: ['2019-03-04', '2019-03-08', '2019-03-12', '2019-03-15'].

Ответы [ 2 ]

2 голосов
/ 08 апреля 2019

Есть несколько способов сделать это:

Версия массива

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

const input = '12/24/2018';
const parts = input.split('/');
const output = `${parts[2]}-${parts[0]}-${parts[1]}`;

console.log(new Date(output));

Версия регулярного выражения

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

const input = '12/24/2018';
const output = input.replace(/(\d{1,2})\/(\d{1,2})\/(\d{4})/, '$3-$1-$2');

console.log(new Date(output));

Или с использованием библиотеки, такой как moment.js

1 голос
/ 08 апреля 2019

Разделение строкового значения разделением "/" дает массив результатов. Затем присоедините массив к «-», чтобы получить результат строки. Используйте Array.map () для преобразования в новый массив.

const dates = ['2019/03/04', '2019/03/08', '2019/03/12', '2019/03/15'];

const formattedDates = dates.map( date => date.split("/").join("-"));

console.log(formattedDates); //["2019-03-04", "2019-03-08", "2019-03-12", "2019-03-15"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...