例如说"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);

}


以上~