如何在React Native中转换日期格式?

时间:2018-09-12 21:02:29

标签: javascript momentjs

从API收到的日期为“ 20180914”,需要将其格式化为2018年9月14日。

环顾四周,发现moment.js用于日期格式化,但是,由于我是RN noob:S

,我仍然遇到麻烦

我正在使用Fetch获取API,并从{item.segments[0].date2}获取日期。

如何在这里使用moment?非常感谢您的宝贵时间。

2 个答案:

答案 0 :(得分:0)

这与react-native无关,您不需要momentjs: console.log('20180914'.replace(/(\d{4})(\d{2})(\d{2})/,'$2/$3/$1'))

答案 1 :(得分:0)

如果每次获取这样的日期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);
    }
}