Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 如何在JS中聚合每周天数数组?_Javascript_Node.js_Date_Momentjs_Aggregate - Fatal编程技术网

Javascript 如何在JS中聚合每周天数数组?

Javascript 如何在JS中聚合每周天数数组?,javascript,node.js,date,momentjs,aggregate,Javascript,Node.js,Date,Momentjs,Aggregate,例如,以2019年10月5日至2019年5月25日的时间范围为例 此时间间隔上的日期需要按如下方式汇总(2019为简洁起见省略): 使用JS解决此问题的最佳方法是什么? 是否可以通过将周初设置为任何一天来实现此功能? 您可以查看日期,如果日期是1(星期一),请在结果中创建一个新数组: const startDate=新日期(2019年10月5日), endDate=新日期(“2019年5月25日”), 结果=[]; 函数_两位数(x){ 返回字符串(x).padStart(2,'0'); }

例如,以2019年10月5日至2019年5月25日的时间范围为例

此时间间隔上的日期需要按如下方式汇总(
2019
为简洁起见省略):

使用JS解决此问题的最佳方法是什么?
是否可以通过将周初设置为任何一天来实现此功能?

您可以查看日期,如果日期是
1
(星期一),请在结果中创建一个
新数组

const startDate=新日期(2019年10月5日),
endDate=新日期(“2019年5月25日”),
结果=[];
函数_两位数(x){
返回字符串(x).padStart(2,'0');
}
设tmp=startDate;
做{
if(tmp.getDay()==1 | | result.length==0){
//创建一个星期数组
结果:推送([]);
}
const str=`${u两位数(tmp.getMonth()+1)}-${u两位数(tmp.getDate())}`;
//将此日期添加到上周数组
结果[result.length-1].push(str);
//加上24小时
tmp=新日期(tmp.getTime()+86400000);

}while(tmp.getTime()您可以查看日期,如果日期是
1
(星期一),请在结果中创建一个
新数组

const startDate=新日期(2019年10月5日),
endDate=新日期(“2019年5月25日”),
结果=[];
函数_两位数(x){
返回字符串(x).padStart(2,'0');
}
设tmp=startDate;
做{
if(tmp.getDay()==1 | | result.length==0){
//创建一个星期数组
结果:推送([]);
}
const str=`${u两位数(tmp.getMonth()+1)}-${u两位数(tmp.getDate())}`;
//将此日期添加到上周数组
结果[result.length-1].push(str);
//加上24小时
tmp=新日期(tmp.getTime()+86400000);

}while(tmp.getTime()如果您对
moment.js
代码感兴趣,这里有一个可能的实现

但正如我所说,这是一个巨大的自由

const start=力矩('2019-05-10');
常数端=力矩('2019-05-25');
常量数组=[[]];
const from_date=时刻(开始).startOf('isoWeek');
截止日期的常数=时刻(结束).endOf('isoWeek');
设j=0;
设加法=0;

对于(让currentDate=moment(from_date);currentDate如果您对
moment.js
code感兴趣,这里有一个可能的实现

但正如我所说,这是一个巨大的自由

const start=力矩('2019-05-10');
常数端=力矩('2019-05-25');
常量数组=[[]];
const from_date=时刻(开始).startOf('isoWeek');
截止日期的常数=时刻(结束).endOf('isoWeek');
设j=0;
设加法=0;
对于(让currentDate=时刻(从日期算起);currentDate
const result = [
  [                                    '05-10', '05-11', '05-12'], // week 1
  ['05-13', '05-14', '05-15', '05-16', '05-17', '05-18', '05-19'], // week 2
  ['05-20', '05-21', '05-22', '05-23', '05-24', '05-25'         ], // week 3
];