js 日历

<div>
    <div class="content"></div>
    <div>
        <a class="left" href="javascript:;">&lt;</a>
        <a class="right" href="javascript:;">&gt;</a>
    </div>
</div>

<table width="100%" border="0" class="mui-text-center"> <thead id="week"> <tr> <th>日</th> <th>一</th> <th>二</th> <th>三</th> <th>四</th> <th>五</th> <th>六</th> </tr> </thead> <tbody id="date"> </tbody></table>
<script>
window.onload = function(){
   //封装id
   function $(_id){
      return document.getElementById(_id);
   }
   //封装class
   function change(_class){
      return document.getElementsByClassName(_class);
   }
   var dateObj = (function(){
       var _date = new Date();
       return {
          getDate : function(){
              return _date;
          },
          setDate : function(date) {
              _date = date;
          }
       };
   })();
   //循环行数
   var str = "";
   for(var i = 0; i < 6; i++) {  
      str += "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
    }
    $("date").innerHTML = str;
   function loadCalendar(){
      var year = dateObj.getDate().getFullYear();//获取年
       var month = dateObj.getDate().getMonth() + 1;//获取月
       var dateStr = getDateStr(dateObj.getDate());//获取日
       //显示年月
       var titleStr = dateStr.substr(0, 4) + "年" + dateStr.substr(4,2) + "月";
       var april = dateStr.substr(0, 4) + dateStr.substr(4,2);
       change("content")[0].innerHTML = titleStr;
       change("content")[0].setAttribute("april",april);
       
       var td = $("date").getElementsByTagName("td");
       var firstDay = new Date(year, month - 1, 1);
       for(var i = 0; i < td.length; i++){
          var thisDay = new Date(year, month - 1, i + 1 - firstDay.getDay());
          var thisDayStr = getDateStr(thisDay);
          td[i].innerHTML = "<a href='javascript:;'>" + thisDay.getDate() + "</a>";
          td[i].setAttribute('data', thisDayStr);
          if(thisDayStr == getDateStr(new Date())) {//获取当前
              td[i].className = 'on';
          }else if(thisDayStr.substr(0, 6) == getDateStr(firstDay).substr(0, 6)) {//除当前以外class
              td[i].className = 'day'; 
          }else{
              td[i].className = 'gray';//上月下月天数
          }
       }
   }
   
   //显示上一月
   change("left")[0].click(function(){
      var date = dateObj.getDate();
       dateObj.setDate(new Date(date.getFullYear(), date.getMonth() - 1, 1));
       loadCalendar();
       data_time();
   });
   
   //显示下一月
   change("right")[0].click(function(){
      var date = dateObj.getDate();
       dateObj.setDate(new Date(date.getFullYear(), date.getMonth() + 1, 1));
       loadCalendar();
       data_time();
   });
   
   function getDateStr(date) {
       var _year = date.getFullYear();
       var _month = date.getMonth() + 1;
       var _d = date.getDate();
       _month = (_month > 9) ? ("" + _month) : ("0" + _month);
       _d = (_d > 9) ? ("" + _d) : ("0" + _d);
       return _year + _month + _d;
   }
   loadCalendar();
   data_time();
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值