例如说"2017-04-01 23:00:00"是周六, "2017-04-28 23:00:00"是周五,包含各自所在的那一周,我真正需要获得的结果是5个周。
开始做的时候一直把字符串啊,时间格式啊转来转去,后来发现,完全没有必要,毕竟我想要的只是周期值而已。。。。。
思路其实很简单,就是获取开始日期的那一周的周一的日期
然后用周一的日期和结束日期比较,向上取整。就可以获取到这个数了
var start = "2017-04-01 23:00:00"; var end = "2017-04-28 23:00:00"; //开始日期的周一 var monday = showWeekFirstDay(start); //开始日期的周一距离结束日期的周期相差值 var cycle = WeeksBetw(monday, end); //返回Nowdate所在周的第一天 function showWeekFirstDay(Nowdates) { var Nowdate = new Date(Nowdates); var WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000); return WeekFirstDay; }
//返回两个日期相差的周数
function WeeksBetw(date11, date22) {
var date1 = new Date(date11);
var date2 = new Date(date22);
//这里的date1,date2都是Date对象
var dt1 = date1.getTime();
var dt2 = date2.getTime();
//向上取整
return Math.ceil(Math.abs(dt1 - dt2) / 1000 / 60 / 60 / 24 / 7);
}
以上~