Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用moment.js将多个日期转换为JSON对象,并将其转换为自定义格式的日期?_Javascript_Json_Reactjs_Date_Momentjs - Fatal编程技术网

Javascript 如何使用moment.js将多个日期转换为JSON对象,并将其转换为自定义格式的日期?

Javascript 如何使用moment.js将多个日期转换为JSON对象,并将其转换为自定义格式的日期?,javascript,json,reactjs,date,momentjs,Javascript,Json,Reactjs,Date,Momentjs,我有一个来自AJAX请求的JSON对象,由接口successResponse interface SuccessResponse { dates: Dates; } 其中: interface Dates { items: DatesItemResponse[]; } interface DatesItemResponse { date: string; } DatesItemResponse如下所示: { "date": "2018-06-25T00:00

我有一个来自AJAX请求的JSON对象,由接口
successResponse

interface SuccessResponse {
    dates: Dates;
}
其中:

interface Dates {
    items: DatesItemResponse[];
}

interface DatesItemResponse {
    date: string;
}
DatesItemResponse
如下所示:

{
    "date": "2018-06-25T00:00:00"
}
const response = {
    dates: {
        items: [{
            date: '2018-06-25T00:00:00'
        }, {
            date: '2018-06-26T00:00:00'
        }, {
            date: '2018-06-27T00:00:00'
        }]
    }
};

我需要使用
moment.js
将所有这些日期格式化为
MM-DD
,因此在上面的示例中,它应该是
06-25
,但我不知道如何使
moment.js
解析所有日期,而不是单个日期。

根据您提到的界面,您的响应如下:

{
    "date": "2018-06-25T00:00:00"
}
const response = {
    dates: {
        items: [{
            date: '2018-06-25T00:00:00'
        }, {
            date: '2018-06-26T00:00:00'
        }, {
            date: '2018-06-27T00:00:00'
        }]
    }
};
因此,您需要迭代
并解析其中的所有
日期
属性,然后使用所需格式调用这些矩对象,在本例中为
MM-DD

如果要在单个数组中获取所有日期,可以使用并执行以下操作:

{
    "date": "2018-06-25T00:00:00"
}
const response = {
    dates: {
        items: [{
            date: '2018-06-25T00:00:00'
        }, {
            date: '2018-06-26T00:00:00'
        }, {
            date: '2018-06-27T00:00:00'
        }]
    }
};
const响应={
日期:{
项目:[{
日期:“2018-06-25T00:00:00”
}, {
日期:“2018-06-26T00:00:00”
}, {
日期:“2018-06-27T00:00:00”
}]
}
};
log(response.dates.items.map(item=>moment(item.date).format('MM-DD'))

时刻(目标日期)。格式('MM-DD')
为什么使用时刻<代码>日期站点mresponse.date.substr(5,5)为我做这件事(代码更少)。;-)我将日期对象作为来自API的ajax响应,因此无法使用JSON.parse()。你有解决办法吗?@OliverJuhl你能用AJAX调用的代码更新你的问题吗?如果响应已经被解析,你可能只需要执行
moment(response.date).format('MM-DD')
moment(response.data.date).format('MM-DD')
,不使用
JSON.parse
@OliverJuhl查看更新后的答案。基本上,如果在响应对象中嵌套了多个日期,则需要迭代所有日期,并创建多个矩对象(每个日期一个)来解析它们。非常感谢@Danziger