js根据起始日期时间来判断星期

由于项目需求,需要在进行日期选择后,对星期也进行对应的校验。举个简单的例子:
假如选择开始日期为2019-3-19,结束时间为:2019-3-20。分别为星期二,星期三。则对应的星期选项,就不能出现其他的星期。

 ```
    //当开始日期,结束日期input框内容发生改变时
    $("#end_date,#start_date").change('input',function () {
        //首先将所有的input框都添加不可选中状态,并且移除所有checked
        $("input[id^='week_']").attr("disabled","disabled");
        $("input[id^='week_']").removeAttr("checked");
        //获取开始日期
        var startDate = $("#start_date").val(); 
        var sTime=new Date(Date.parse(startDate));
        var startMills = sTime.getTime();//开始日期的毫秒数
        var startDay = sTime.getDay();//开始日期为周几
        var endDate = $("#end_date").val(); //结束日期
        var eTime=new Date(Date.parse(endDate));
        var endDay = eTime.getDay();//结束日期为周几
        var endMills = eTime.getTime();//结束日期的毫秒数
        var diff = endMills - startMills;
        var days = diff/(1000*60*60*24);//开始日期至结束日期共多少天
        var w = Math.round(Math.ceil(((days+startDay+(7-endDay))/7.0)));//给定时间内,共有多少个星期
        /*
        * 首先我们要根据days的值来区分不同的情况。如上days为开始日期到结束日期的总天数。
        * 1.days大于8天,则一定会包含所有的星期
        * 2.days小于8天,则需要区分开处理
        * ps:因为根据getDay()得出的星期天为0.需要进行如下处理
        * */
        
        if (days<8){
            for (var i = startDay; i < startDay+days+1; i++) {
                if (i<=7){
                    $("#week_"+i+"").removeAttr("disabled");
                }
                if (i>=8){
                    $("#week_"+(i-7)+"").removeAttr("disabled");
                }
            }
        }else {
            $("input[id^='week_']").removeAttr("disabled");
        }

    });

``

以上是自己临时参考资料写的简单实现,记录下,希望可以帮到大家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值