Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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 - Fatal编程技术网

javascript中的日期循环

javascript中的日期循环,javascript,Javascript,我创建了一个循环日期的函数,然后根据周和周中的日期输入数组 这是循环和函数的代码 var周=[]; //获取日期的周数; var getWeek=函数(日期){ var onejan=新日期(Date.getFullYear(),0,1); 返回Math.ceil(((date-onejan)/86400000)+onejan.getDay()+1)/7); }; var curr=新日期(); //获得一周的第一天 var startDay=新日期(curr.setDate(curr.get

我创建了一个循环日期的函数,然后根据周和周中的日期输入数组

这是循环和函数的代码

var周=[];
//获取日期的周数;
var getWeek=函数(日期){
var onejan=新日期(Date.getFullYear(),0,1);
返回Math.ceil(((date-onejan)/86400000)+onejan.getDay()+1)/7);
};
var curr=新日期();
//获得一周的第一天
var startDay=新日期(curr.setDate(curr.getDate()-curr.getDay());
//endDay=“2015/9/30”
var endDay=新日期(2015年8月30日);
while(开始日<结束日){
if(周[getWeek(startDay)]==未定义){
周[getWeek(startDay)]=[];
}
周[getWeek(startDay)][startDay.getDay()]=startDay.toString();
var newDate=startDay.setDate(startDay.getDate()+1);
startDay=新日期(newDate);
}

控制台日志(周)循环没有问题-问题在于如何初始化开始日期。特别是小时、分钟和秒

比较这些:

getWeek(new Date()); // 39
getWeek(new Date(2015, 8, 19)); // 38
getWeek(new Date(2015, 8, 19, 1)); // 39
我猜当您执行
Math.ceil()
时,错误会累积—您可能需要对此进行更深入的调试

无论如何,您的代码可能是这样的:

var周=[];
//获取日期的周数;
var getWeek=函数(日期){
var onejan=新日期(Date.getFullYear(),0,1);
返回Math.ceil(((date-onejan)/86400000)+onejan.getDay()+1)/7);
};
var curr=新日期();
// -----------------
//减去日期,因为我们有可能得到上一个月。
curr.setDate(curr.getDate()-curr.getDay());
//使用diff构造函数初始化,因此m:h:s将为0。
var startDay=新日期(curr.getFullYear()、curr.getMonth()、curr.getDate());
// -----------------
//endDay=“2015/9/30”
var endDay=新日期(2015年8月30日);
while(开始日<结束日){
if(周[getWeek(startDay)]==未定义){
周[getWeek(startDay)]=[];
}
周[getWeek(startDay)][startDay.getDay()]=startDay.toString();
var newDate=startDay.setDate(startDay.getDate()+1);
startDay=新日期(newDate);
}

控制台日志(周)循环没有问题-问题在于如何初始化开始日期。特别是小时、分钟和秒

比较这些:

getWeek(new Date()); // 39
getWeek(new Date(2015, 8, 19)); // 38
getWeek(new Date(2015, 8, 19, 1)); // 39
我猜当您执行
Math.ceil()
时,错误会累积—您可能需要对此进行更深入的调试

无论如何,您的代码可能是这样的:

var周=[];
//获取日期的周数;
var getWeek=函数(日期){
var onejan=新日期(Date.getFullYear(),0,1);
返回Math.ceil(((date-onejan)/86400000)+onejan.getDay()+1)/7);
};
var curr=新日期();
// -----------------
//减去日期,因为我们有可能得到上一个月。
curr.setDate(curr.getDate()-curr.getDay());
//使用diff构造函数初始化,因此m:h:s将为0。
var startDay=新日期(curr.getFullYear()、curr.getMonth()、curr.getDate());
// -----------------
//endDay=“2015/9/30”
var endDay=新日期(2015年8月30日);
while(开始日<结束日){
if(周[getWeek(startDay)]==未定义){
周[getWeek(startDay)]=[];
}
周[getWeek(startDay)][startDay.getDay()]=startDay.toString();
var newDate=startDay.setDate(startDay.getDate()+1);
startDay=新日期(newDate);
}

控制台日志(周)谢谢!!约会的时间真的有问题@很乐意帮忙!:)祝你好运谢谢约会的时间真的有问题@很乐意帮忙!:)祝你好运