Я использую средство выбора даты из Element Ui, где пользователь может выбрать диапазон дат. Когда пользователь заполняет указатель даты, я получаю следующее: ['2018-01', '2019-02']. Так что просто массив с двумя элементами String. НЕ Date() объект.

При динамическом выводе этого пользователю я хотел бы показать его как: January 2018 - February 2019

В моем проекте это работает, но код просто отстой, а также не работает должным образом. Оформите gif моего текущего проекта и несколько желаемого результата. Мне было интересно, если кто-нибудь знает хороший и простой способ достижения желаемого результата без особых хлопот. Я не могу использовать такие методы, как toLocaleDateString(), потому что это не Date() объект. Мой код работает в Codesandbox. Если вы, ребята, знаете решение, не стесняйтесь редактировать перечисленные Codesandbox, я был бы очень признателен!

В Codesandbox я получил вычисляемое свойство formateDate. Основная идея вычисляемого свойства состоит в том, чтобы вырезать элементы массива, которые я возвращаю из datepicker до и после -, что дает мне первый и второй месяц, а также первый и второй год. Эти данные я храню в этих переменных:

let monthOne;
let monthTwo;
let yearOne;
let yearTwo;

Так как я вернул месяцы, например, '01' и '02', я создал массив объектов для преобразования '01' и '02' в January и {{ X5}} с циклом for. Затем я сохраняю результат в новой переменной:

displayDate = monthOne + ' ' + yearOne + ' - ' + monthTwo + ' ' + yearTwo;

Наконец, я попытался сохранить этот результат в timeperiodDisplayString по правильному индексу в массиве experience объектов. В любом случае, я, вероятно, слишком усложняю этот путь, поэтому я ДЕЙСТВИТЕЛЬНО буду признателен за любую помощь с этим.

0
Reinier68 4 Сен 2019 в 12:29

2 ответа

Лучший ответ

Возможно, вы можете отобразить результат из компонента datepicker, чтобы создать массив объектов Date. Так что вы можете использовать toLocaleDateString()

Примерно так должно работать:

['2018-01', '2019-02'].map((date) => { 
    const split = date.split('-'); 

    return new Date(split[0], +split[1] - 1); 
});
1
daanvanham 4 Сен 2019 в 09:40

Вы можете использовать функцию parse () из JavaScript.

 var d = Date.parse("2019-01");
 console.log(new Date(d));
0
Parth Bhagat 4 Сен 2019 в 14:42