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);
}
控制台日志(周)代码>谢谢!!约会的时间真的有问题@很乐意帮忙!:)祝你好运谢谢约会的时间真的有问题@很乐意帮忙!:)祝你好运