Как конвертировать формат даты в React Native? - PullRequest
0 голосов
/ 13 сентября 2018

Получена дата как «20180914» в ответ от API, и необходимо отформатировать ее в 09/14 / 2018.

Осмотрелась и обнаружила, что moment.js используется для форматирования даты, однако яУ меня все еще проблемы с этим, так как я RN Noob: S

Я использую Fetch, чтобы получить мой API, и я получаю дату от {item.segments[0].date2}.

Как можноЯ использую moment здесь?Большое вам спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Если каждый раз, когда вы получаете дату, такую ​​как YYYYMMDD, вы можете выполнить следующие действия:

var item = {
       segments: [
           {
               date2: 20180918
           }
       ]
   };

if (typeof item.segments[0].date2 === 'number') {
    item.segments[0].date2 = item.segments[0].date2.toString();
}

if (typeof item.segments[0].date2 === 'string') {
    // strip out non-numbers
    let result = date.replace(/\D/g, '');

    // invalid format i.e. not enough numbers
    if (result.length !== 8)
        item.segments[0].date2 = null;
    else {
        // Convert date into format YYYY-MM-DD
        item.segments[0].date2 = result.substr(0, 4) + "-" + result.substr(4, 2) + "-" + result.substr(6, 2);

        // After Importing moment to your application
        // Using moment to convert format to MM/DD/YYYY
        item.segments[0].date2 = moment(item.segments[0].date2,'YYYY-MM-DD').format('MM/DD/YYYY');

       // If don't want to use moment then skip above two can do this
       item.segments[0].date2 = result.substr(4, 2) + "/" + result.substr(6, 2) + "/" + result.substr(0, 4);
    }
}
0 голосов
/ 13 сентября 2018

Это не имеет ничего общего с реагирующим-родным, и вам не нужны моменты: console.log('20180914'.replace(/(\d{4})(\d{2})(\d{2})/,'$2/$3/$1'))

...