Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/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 获取月对象中两天之间的所有日和_Javascript_Date - Fatal编程技术网

Javascript 获取月对象中两天之间的所有日和

Javascript 获取月对象中两天之间的所有日和,javascript,date,Javascript,Date,日期将有2个输入,输出应如下所示 假设两个输入分别为2020-01-01和2020-02-23 { "2021-01" : 31, "2021-02" : 23, } 第二件事是,如果一个月包括它的所有日子,它应该表示为: { "2021-01" : { days: 31, isAll : true },

日期将有2个输入,输出应如下所示

假设两个输入分别为2020-01-01和2020-02-23

{
   "2021-01" : 31,
   "2021-02" : 23,
}
第二件事是,如果一个月包括它的所有日子,它应该表示为:

{
    "2021-01" : {
                    days: 31,
                    isAll : true
                },
    "2021-02" : {
                    days: 23,
                    isAll : false
                },
}

我该怎么做呢?

您可以使用
.reduce
迭代对象
条目
,并为每个
,保存一个对象,该对象的天数为
,以及它是否是最后一天:

const\u getLastDay=date=>{
常量[年,月]=日期分割('-');
返回新日期(年、月、0)。getDate();
}
常量getDates=(日期1,日期2)=>{
常量数据={
[`${date1.getFullYear()}-${('0'+(date1.getMonth()+1)).slice(-2)}`]:date1.getDate(),
[`${date2.getFullYear()}-${('0'+(date2.getMonth()+1)).slice(-2)}`]:date2.getDate()
};
return Object.entries(data).reduce((acc,[日期,天数])=>{
acc[date]={天,isAll:{getLastDay(date)==天};
返回acc;
}, {});
}

控制台日志(getDates(新日期(“2021-01-31”)、新日期(“2021-02-23”)谢谢你的回答,解释得很好。但我如何从2个日期对象中获取您声明为“数据”的对象?@MertDoğruca我更新了答案,首先构建对象
数据
,然后将其缩减为结果输出