Javascript 如何使用moment.js将多个日期转换为JSON对象,并将其转换为自定义格式的日期?
我有一个来自AJAX请求的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
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