js 写 select 对应年的 自然周-日期 动态下拉列

1  a.jsp

        <select name="weekSelect" id="weekSelect" style="width: 200px;"></select>


2   a.js

     if($.isEmpty($("#weekSelect").val())){
                initWeek();
      }

     function initWeek(){
        var year = '2017';
        var text = year + '/01/01';        /* text = '2017/01/01' */
        var ymd = year + "-01-01";      /* ymd = '2017-01-01' */
        var week = new Date(Date.parse(text));    /* week = 'Sun Jan 01 2017 00:00:00 GMT+0800' */
        var w = week.toString().substring(0, 3);     /* w = 'Sun' ,即该年的1月1号为周日,则2017年第一周为1月1号*/
        var dd = 1;
        switch (w) {            /* 周一为0 ,周末对应为6*/
            case "Mon": dd = 0; break; 
            case "Tue": dd = 1; break;
            case "Wed": dd = 2; break;
            case "Thu": dd = 3; break;
            case "Fri": dd = 4; break;
            case "Sat": dd = 5; break;
            case "Sun": dd = 6; break;
        }
        var day = 1;
        if(((year%4==0)&&(year%100!=0))||(year%400==0)){     /* 判断为如年为366天 */
            day = 366;
        }else {
            day = 365;
        }
        var aw = 53;  /* 一年有53周 */
        $("#weekSelect").empty();  /* 置空下拉列表 */
         /*循环每个周的日期区间 */

        for(var i = 0; i < 53; i++){
            var start = i * 7 + 1 - dd;  /* 每周的第一天*/
            var end = i * 7 + 7 - dd;  /* 每周的最后一天*/
            if(start < 1){
                start = 1;     /* 第一周为1月1号, 即2017年第1天*/
            }
            if(end > day){
                end = day;  /* 最后一周为12月31号,即2017年第365/366天,*/
            }

            /* 2017年1月开始第start天 对应的beginMonth 月份(+1是因为月份为1-11)*/                                                             var beginMonth = new Date(year, 0, start).getMonth() + 1 ;

             /* 2017年1月开始第start天 对应的beginDay号*/         

            var beginDay= new Date(year, 0, start).getDate();

            /* 2017年1月开始end天 对应的endMonth 月份*/         

            var endMonth = new Date(year, 0, end).getMonth() + 1 ;

            /* 2017年1月开始end天 对应的endDay号*/      

            var endDay= new Date(year, 0, end).getDate();

            var str = ("第" + (i + 1) + "周 <" + beginMonth + "月" + beginDay + "号—" + endMonth + "月" + endDay  + "号>").toString();
            $("#weekSelect").append("<option value = '第" + (i + 1)+"周,"+ beginMonth+ "/" + beginDay + "-" + endMonth+ "/" + endDay + "'>" + str + "</option>");
        }
         $('#weekSelect')[0].selectedIndex = 0;
         var itme = $("#weekSelect").find("option:selected").text();
         $("#weekSelect:text").val(itme.toString());    
    }
  
3  jsp效果图





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值