zoukankan      html  css  js  c++  java
  • 原生JavaScript实现一种日历

    设计目标:不依赖其他库、兼容一些旧版浏览器、可配置可扩展。

    测试页面:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>测试日历控件</title>
      6     <style>
      7         #div1{
      8             width: 256px;
      9             height: 202px;
     10             box-sizing: border-box;
     11             background-color: #fff;
     12             box-shadow: 1px 1px 3px #999;
     13             position:absolute;
     14             left:0px;
     15         }
     16         #div2 {
     17             width: 236px;
     18             height: 166px;
     19             box-sizing: border-box;
     20             background-color: #fff;
     21             box-shadow: 1px 1px 3px #999;
     22             position:absolute;
     23             left:300px;
     24         }
     25         .select_date{
     26             padding-left: 10px;box-sizing:border-box;width: 100px;height: 30px;background-color: #fff;font-size: 12px;float: left;line-height: 30px;
     27         }
     28         .span_rq{
     29             width: 60px;display: inline-block;
     30         }
     31     </style>
     32     <script src="DatePicker.js"></script>
     33 </head>
     34 <body>
     35 <div id="div_all_base" style="background-color: beige">
     36     <div id="div1">
     37 
     38     </div>
     39     <div id="div2">
     40 
     41     </div>
     42     <div style=" 600px;height: 30px;left:600px;position:absolute;float:left" id="div3">
     43         <div style="float: left;line-height: 30px;margin-left: 10px;font-size: 12px;"></div>
     44         <div class="select_date"><span class="span_rq">开始日期</span><img src="image/rili2.jpg" style="margin-left: 10px; 20px;margin-top: 6px;cursor: pointer" alt="" onclick="var divs=div_rilis.getElementsByClassName('div_rili');divs[0].style.display='block';divs[1].style.display='none'"></div>
     45         <div style="position: absolute;256px;height: 202px;top:50px;display: none" class="div_rili"></div>
     46         <div style="float: left;line-height: 30px;margin-left: 10px;font-size: 12px;"></div>
     47         <div class="select_date"><span class="span_rq">结束日期</span><img src="image/rili2.jpg" style="margin-left: 10px; 20px;margin-top: 6px;cursor: pointer" alt=""  onclick="var divs=div_rilis.getElementsByClassName('div_rili');divs[1].style.display='block';divs[0].style.display='none'"></div>
     48         <div style="position: absolute;256px;height: 202px;top:50px;left:120px;display: none" class="div_rili"></div>
     49     </div>
     50 </div>
     51 </body>
     52 <script>
     53     var div_rilis=document.getElementById("div3");
     54 
     55     var apiHost="http://127.0.0.1/api/v1";
     56     var data_enabledate={list_enabledate:[{CBRQ:20201111},{CBRQ:20201112},{CBRQ:20201113},{CBRQ:20201114},{CBRQ:20201115}],type:"ok"};
     57     //用AJAX从后端查询可选日期,需要返回数据的格式与data_enabledate相同
     58     //var datepicker1=new DatePicker("datepicker1",{pickcallback:loadPage,bannerBackColor:"rgb(0,112,192)",searchEnableUrl:apiHost+"/public/searchEnableDate"});//
     59     //直接用前端数据,设置了点击回调、banner颜色、激活日期
     60     var datepicker1=new DatePicker("datepicker1",{pickcallback:loadPage,bannerBackColor:"rgb(0,112,192)",searchEnableUrl:data_enabledate});
     61     var div_rili1=document.getElementById("div1");
     62     div_rili1.appendChild(datepicker1.div);
     63     datepicker1.reloadDateList();
     64 
     65     //设置更多的配置项,被点击的按钮变色,程序可以在一定的范围内根据外围div的大小调整每个按钮的尺寸,另外设置了字体大小,以及允许点击未激活日期
     66     var datepicker2=new DatePicker("datepicker2",{
     67         pickcallback:function(str_date,that){
     68             datepicker2.pick0(str_date);
     69             loadPage(str_date);
     70         },bannerBackColor:"rgb(0,112,192)",236,height:166,shadowSize:0,paddingSize:0,
     71         searchEnableUrl:data_enabledate,contentFontSize:9,flag_canPickUnEnabled:true,
     72     });
     73     var div_rili2=document.getElementById("div2");
     74     div_rili2.appendChild(datepicker2.div);
     75     datepicker2.reloadDateList();
     76 
     77     function loadPage(str_date){
     78 
     79         alert("点击的日期是"+str_date);
     80     }
     81 
     82     //常用的起始日期和结束日期,这里设置了每个日历的title,不区分激活按钮,并且把日历的值与span的innerHTML关联起来(使用arr_valuelink属性可以关联input或textview的value)
     83     var divs=div_rilis.getElementsByClassName('div_rili');
     84     var spans=div_rilis.getElementsByClassName("span_rq");
     85     var datepicker1b=new DatePicker("datepicker1b",{pickcallback:function(value,that){
     86             var divs=div_rilis.getElementsByClassName('div_rili');
     87             divs[0].style.display='none';
     88             divs[1].style.display='none';
     89             DatePicker.linkValue(value,that)
     90         },bannerBackColor:"rgb(0,112,192)",arr_innerlink:[spans[0]],title:"开始日期"});//与react不同这里的spans在onload后不会再重新生成,所以可以直接关联dom对象!!
     91     var datepicker2b=new DatePicker("datepicker2b",{pickcallback:function(value,that){
     92             var divs=div_rilis.getElementsByClassName('div_rili');
     93             divs[0].style.display='none';
     94             divs[1].style.display='none';
     95             DatePicker.linkValue(value,that)
     96         },bannerBackColor:"rgb(0,112,192)",arr_innerlink:[spans[1]],title:"结束日期"});
     97     divs[0].appendChild(datepicker1b.div);
     98     divs[1].appendChild(datepicker2b.div);
     99     datepicker1b.reloadDateList();
    100     datepicker2b.reloadDateList();
    101 </script>
    102 </html>

    日历按钮图片:

    代码实现:(建议从后往前看)

      1 DatePicker=function(id,obj_p)
      2 {
      3     //如果已经有这个div则建立失败
      4     var div=document.getElementById("id");
      5     if(div)
      6     {
      7         console.log("组件id重复,请使用其他组件id");
      8         return;
      9     }
     10     div=document.createElement("div");//最外层容器
     11     this.id=id;
     12     this.div=div;
     13     div.id=id;
     14     var _this=this;
     15 
     16     this.width=obj_p.width||256;
     17     this.height=obj_p.height||202;
     18     this.shadowSize=obj_p.shadowSize||4;
     19     this.shadowColor=obj_p.shadowColor||"rgb(203,203,203)";
     20     this.backColor=obj_p.backColor||"white";
     21     //this.boxShadow=obj_p.boxShadow||"inset 0 0 4px 4px rgb(203,203,203)";
     22     div.style.border="0px";
     23     div.style.width=this.width+"px";
     24     div.style.height=this.height+"px";
     25     div.style.boxShadow="inset 0 0 "+this.shadowSize+"px "+this.shadowSize+"px "+this.shadowColor;
     26     div.style.position="absolute";
     27     div.style.backgroundColor=this.backColor;
     28 
     29     this.title=obj_p.title||"日期选择";
     30     //this.noTitle=obj.noTitle||false;
     31     //this.noBanner=obj.noBanner||false;
     32     this.h1=obj_p.h1||24;//最上面的一行空间
     33     this.h2=obj_p.h2||24;
     34     //this.h3=obj_p.h3||208;
     35     this.titleFontSize=obj_p.titleFontSize||12;
     36     this.contentFontSize=obj_p.contentFontSize||10;
     37     var span=document.createElement("span")//日历的标题栏
     38     span.innerText=this.title;
     39     span.style.height=this.h1+"px";
     40     span.style.fontSize=this.titleFontSize+"px";
     41     span.style.fontWeight="bold";
     42     span.style.lineHeight=this.h1+"px";
     43     span.style.display="inline-block";
     44     span.style.left=this.shadowSize+"px";
     45     span.style.paddingLeft=this.shadowSize+"px";
     46     span.style.position="absolute";
     47     span.style.zIndex="2";
     48     div.appendChild(span);
     49 
     50     this.bannerBackColor=obj_p.bannerBackColor||"rgb(169,16,10)";
     51     this.bannerFontColor=obj_p.bannerFontColor||"white";
     52     this.date=obj_p.date||(new Date());//默认日期
     53     this.year=this.date.getFullYear();
     54     this.month=this.date.getMonth();
     55     this.day31=this.date.getDate();
     56     this.day7=this.date.getDay();
     57     this.arr_day7=obj_p.arr_day7||["","一","二","三","四","五","六","日"];
     58     this.arr_bannerp=obj_p.arr_bannerp||([//用来调整年月的按钮
     59         {id:"btn1",10,marginLeft:20,text:"《",onclick:function(){_this.year-=10;_this.changeYear()}}
     60         ,{id:"btn2",10,marginLeft:5,text:"〈",onclick:function(){_this.year-=1;_this.changeYear()}}
     61         ,{id:"btn3",40,marginLeft:5,text:this.year,onclick:function(){}}
     62         ,{id:"btn4",10,marginLeft:5,text:"〉",onclick:function(){_this.year+=1;_this.changeYear()}}
     63         ,{id:"btn5",10,marginLeft:5,text:"》",onclick:function(){_this.year+=10;_this.changeYear()}}
     64         ,{id:"btn6",10,marginLeft:50,text:"〈",onclick:function(){_this.month-=1;if(_this.month<0){_this.month=11;_this.year-=1;}_this.changeMonth();_this.changeYear()}}
     65         ,{id:"btn7",20,marginLeft:5,text:this.month+1,onclick:function(){}}
     66         ,{id:"btn8",10,marginLeft:5,text:"〉",onclick:function(){_this.month+=1;if(_this.month>11){_this.month=0;_this.year+=1;}_this.changeMonth();_this.changeYear()}}
     67         ])
     68 
     69     var div_banner=document.createElement("div");
     70     div_banner.style.height=this.h2+"px";
     71     //div_banner.style.width="100%";
     72     div_banner.style.left=this.shadowSize+"px";
     73     div_banner.style.right=this.shadowSize+"px";
     74     div_banner.style.top=this.h1+"px";
     75     div_banner.style.position="absolute";
     76     div_banner.style.backgroundColor=this.bannerBackColor;
     77     div_banner.style.lineHeight=this.h2+"px";
     78     div_banner.style.zIndex="2";
     79     //div_banner.style.fontSize=this.contentFontSize+2+"px";
     80     //div_banner.style.color=this.bannerFontColor;
     81     //div_banner.style.fontWeight="bold";
     82 
     83     //this.changeYearBack=obj_p.
     84 
     85     var len=this.arr_bannerp.length;
     86     var sum_left=0;
     87     for(var i=0;i<len;i++)//banner上调整年月的按钮
     88     {
     89         var bannerp=this.arr_bannerp[i];
     90         var btn=document.createElement("button");
     91         btn.id=bannerp.id;
     92         btn.style.position="absolute";
     93         btn.style.backgroundColor=this.bannerBackColor;
     94         btn.style.border="0px";
     95         btn.style.padding="0px";
     96         btn.style.textAlign="center";
     97         btn.style.color=this.bannerFontColor;//button这个属性并不会自动继承
     98         btn.style.fontWeight="bold";
     99         btn.style.fontSize=this.contentFontSize+2+"px";
    100         btn.style.height="100%";
    101         btn.style.lineHeight=this.h2+"px";
    102         btn.style.width=bannerp.width+"px";
    103         btn.style.left=sum_left+bannerp.marginLeft+"px";
    104         btn.innerText=bannerp.text;
    105         btn.onclick=bannerp.onclick;
    106         sum_left+=(bannerp.width+bannerp.marginLeft);
    107         this[btn.id]=btn;
    108         div_banner.appendChild(btn);
    109     }
    110     div.appendChild(div_banner);
    111     this.paddingSize=obj_p.paddingSize||6;
    112 
    113     this.gridBackColor=obj_p.gridBackColor||"#eeeeee";//单元格背景颜色
    114     this.gridColor=obj_p.gridColor||"#000000";//本月单元格的文字颜色
    115     this.gridColor0=obj_p.gridColor0||"#888888";//连带显示的非本月单元格的文字颜色
    116     this.hoverBorderColor=obj_p.hoverBorderColor||"#888888";//鼠标移入可选单元格后的边框颜色
    117     this.enableBackColor=obj_p.enableBackColor||"rgb(207,232,252)";//可以被选择的单元格的背景颜色
    118     this.enableBackColorPicked=obj_p.enableBackColorPicked||"rgb(252,232,207)";
    119     var div_list=document.createElement("div");//按钮容器
    120     var int1=this.shadowSize+this.paddingSize;
    121     div_list.style.left=int1+"px";
    122     div_list.style.right=int1+"px";
    123     div_list.style.top=int1+"px";
    124     div_list.style.bottom=this.shadowSize+"px";
    125     div_list.style.position="absolute";
    126     div_list.style.backgroundColor=this.gridBackColor;
    127     div.appendChild(div_list);
    128     this.sizex=Math.floor((this.width-int1*2)/7);//按钮尺寸
    129     this.sizey=Math.floor((this.height-int1-this.shadowSize-(this.h1+this.h2-this.shadowSize-this.paddingSize))/7);
    130     this.pickcallback=obj_p.pickcallback;//鼠标点击日期按钮之后的响应方法
    131     this.div_list=div_list;
    132     this.obj_enable={};
    133     this.searchEnableUrl=obj_p.searchEnableUrl;//||apiHost+"/public/searchEnableDate";
    134     this.flag_canPickUnEnabled=obj_p.flag_canPickUnEnabled||false;//是否可以点击不激活的按钮
    135     if(!this.searchEnableUrl)//根本不区分按钮是否激活
    136     {
    137         this.flag_canPickUnEnabled=true;
    138     }
    139     //this.reloadDateList(obj_p.initcallback);
    140     //将日历的选择值与某些dom对象关联起来
    141     this.arr_innerlink=obj_p.arr_innerlink||[];
    142     this.arr_valuelink=obj_p.arr_valuelink||[];
    143 }
    144 DatePicker.linkValue=function(value,that)//改变与日历相关联的dom对象的值
    145 {
    146     var len=that.arr_innerlink.length;
    147     for(var i=0;i<len;i++)
    148     {
    149         that.arr_innerlink[i].innerHTML=value;
    150     }
    151     var len=that.arr_valuelink.length;
    152     for(var i=0;i<len;i++)
    153     {
    154         that.arr_valuelink[i].value=value;
    155     }
    156 }
    157 DatePicker.prototype.changeYear=function()
    158 {
    159     this.btn3.innerText=this.year;
    160     this.reloadDateList();//根据当前月份重新排列日期btn
    161     console.log("改变了年份")
    162 }
    163 DatePicker.prototype.changeMonth=function()
    164 {
    165     this.btn7.innerText=this.month+1;
    166     console.log("改变了月份")
    167 }
    168 DatePicker.DrawButton=function(that,callback)
    169 {//重新渲染选中月份的日历按钮
    170     try {
    171 
    172         var sizex = that.sizex;//每个小块的宽度
    173         var sizey = that.sizey;//每个小块的宽度
    174         var date_list = new Date(that.year + "-" + (that.month + 1) + "-1");//取这个月的第一天
    175         var day7_list = date_list.getDay();//是周几
    176         //上一个月有几天?
    177         var date_list0 = date_list - 1000 * 60 * 60;//上个月的最后一天
    178         var day31_list0 = (new Date(date_list0)).getDate();//是几号
    179 
    180         var int3 = that.month + 2;
    181         var int4 = that.year;
    182         if (int3 > 12) {
    183             int3 = 1;
    184             int4++;
    185         }
    186         var date_list2 = new Date(int4 + "-" + (int3) + "-1");//取下个月的第一天
    187         var date_list1 = date_list2 - 1000 * 60 * 60;//这个月的最后一天
    188         var day31_list1 = (new Date(date_list1)).getDate();//是几号
    189         for (var i = 0; i < (day7_list - 1); i++) {//补齐日历第一行的灰色部分
    190             that.arr_date.push({text: day31_list0 - (day7_list - 2 - i), inmonth: false})
    191         }
    192         if(that.searchEnableUrl)//如果要区分按钮是否激活
    193         {
    194             var list_enabledate = that.obj_json.list_enabledate;
    195             for (var i = 1; i <= day31_list1; i++) {
    196                 var len = list_enabledate.length;
    197                 var str_fulldate = that.year + (that.month + 1 + 100 + "").substr(1) + (i + 100 + "").substr(1);
    198                 var obj = {text: i, inmonth: true, isenable: false, str_fulldate: str_fulldate};
    199                 for (var j = 0; j < len; j++) {
    200                     if (list_enabledate[j].CBRQ == (str_fulldate)) {
    201                         obj.isenable = true;
    202                         //obj.str_fulldate=str_fulldate;
    203                         break;
    204                     }
    205                 }
    206                 that.arr_date.push(obj);
    207             }
    208         }
    209         else {
    210             for (var i = 1; i <= day31_list1; i++) {
    211                 var str_fulldate = that.year + (that.month + 1 + 100 + "").substr(1) + (i + 100 + "").substr(1);
    212                 var obj = {text: i, inmonth: true, isenable: false, str_fulldate: str_fulldate};
    213                 //obj.isenable = true;<-在不区分是否激活的情况下,不需要变色标记
    214                 that.arr_date.push(obj);
    215             }
    216         }//将本月内的日期对象推入
    217 
    218         var len = that.arr_date.length;
    219         for (i = 0; i < (42 - len); i++) {//补上本月剩余的灰色部分
    220             that.arr_date.push({text: i + 1, inmonth: false})
    221         }
    222       //开始绘制按钮
    223         var int2 = that.h1 + that.h2 - that.shadowSize - that.paddingSize;
    224         for (var i = 0; i < 7; i++)//对于每一行
    225         {
    226             for (var j = 0; j < 7; j++) {
    227 
    228                 (function () {//这里需要用闭包避免var变量污染
    229                     var div = document.createElement("div");
    230                     div.class = "div_riligrid";
    231                     //div.className="div_riligrid";
    232                     div.style.position = "absolute";
    233                     div.style.display = "inline-block";
    234                     div.style.top = i * sizey + int2 + "px";
    235                     div.style.left = j * sizex + "px";
    236                     div.style.width = sizex + "px";
    237                     div.style.height = sizey + "px";
    238 
    239                     //div.style.borderWidth="0px"
    240                     //div.style.borderColor=that.hoverBorderColor
    241                     div.style.textAlign = "center";
    242 
    243 
    244                     if (i == 0)//第一行显示一周七天的名字,按中式习惯从周一到周日显示
    245                     {
    246                         div.style.color = that.gridColor;
    247                         div.innerText = that.arr_day7[j + 1];
    248                         div.style.fontSize = that.contentFontSize + "px";
    249                         div.style.cursor = "default";
    250                     }
    251                     else//接下来根据列表生成日期小块
    252                     {
    253                         div.style.fontSize = that.contentFontSize + 4 + "px";
    254                         div.style.cursor = "pointer";
    255                         var index = (i - 1) * 7 + j;
    256                         (function () {
    257                             var obj = that.arr_date[index];
    258                             div.innerText = obj.text;
    259                             if (!obj.inmonth) {//对于不在本月内的占位按钮
    260                                 div.style.color = that.gridColor0;
    261                             }
    262                             else//根据条件判断按钮是否可点击
    263                             {
    264                                 div.style.color = that.gridColor;
    265                                 //obj.isEnabled=false;
    266                                 //div.style.borderWidth
    267                                 /*div.onclick=function(){
    268                                     that.pickcallback(obj.text)
    269                                 }*/
    270                                 div.style.top = i * sizey + int2 + 1 + "px";
    271                                 div.style.left = j * sizex + 1 + "px";
    272                                 div.style.width = sizex - 2 + "px";
    273                                 div.style.height = sizey - 2 + "px";
    274                                 if (obj.isenable == true || that.flag_canPickUnEnabled) {
    275                                     div.onclick = function () {
    276                                         //obj.isenable
    277                                         that.pickcallback(obj.str_fulldate,that)
    278                                     }
    279                                 }
    280 
    281                                 //div.style.border="1px solid "+that.hoverBorderColor;
    282                                 //鼠标移入移出事件
    283                                 div.onpointerenter = function () {//鼠标移入时显示边框
    284                                     div.style.border = "1px solid " + that.hoverBorderColor;
    285                                 }
    286                                 div.onpointerleave = function () {
    287                                     div.style.border = "0px"
    288                                 }
    289                                 that.obj_enable["div_" + obj.str_fulldate] = div;
    290                                 if (obj.isenable) {
    291                                     div.style.backgroundColor = that.enableBackColor;
    292 
    293                                 }
    294                             }
    295                         })()
    296                         //事件
    297                     }
    298                     that.div_list.appendChild(div);
    299                 })()
    300             }
    301         }
    302         that.inited=true;
    303         if (that.true_cbrq) {
    304              that.pick(that.true_cbrq);
    305         }
    306         if (callback) {
    307             callback();
    308         }
    309     }catch(e)
    310     {
    311         alert(e);
    312         console.log(e);
    313     }
    314 }
    315 DatePicker.prototype.reloadDateList=function(callback)
    316 {//重新渲染当前月份日历按钮前,从后台查询本月激活按钮
    317     console.log("重新加载日期列表")//7*6标准
    318     this.arr_date=[];
    319     this.obj_enable={};
    320     this.div_list.innerHTML="";
    321     var that=this;
    322     //有可能不需要后台查询!
    323     if(this.searchEnableUrl)
    324     {
    325         if(typeof searchEnableUrl=="string") {//如果url是字符串
    326 
    327 
    328             //先绘制标签还是先查询标签限制?
    329             var ajax = createXMLHttpRequest();
    330             ajax.open("POST", this.searchEnableUrl);
    331             ajax.onreadystatechange = function () {//这里取到的this时ajax对象!
    332                 if (ajax.readyState == 4) {
    333 
    334                     if (ajax.status == 200) {
    335                         var str_json = ajax.responseText;
    336                         try {
    337                             var obj_json = JSON.parse(str_json);
    338                             if (obj_json.type == "ok") {
    339                                 that.obj_json = obj_json;
    340                                 DatePicker.DrawButton(that, callback);
    341 
    342                             }
    343                             else if (obj_json.type == "error") {
    344                                 alert(obj_json.str_res);
    345                                 console.log(obj_json.str_res);
    346                             }
    347                         }
    348                         catch (e) {
    349                             alert(e);
    350                             console.log(e);
    351                         }
    352                         ajax.abort();
    353                     }
    354                 }
    355             }
    356 
    357             //var obj_json={ str_month:this.year+(this.month+1+100+"").substr(1)}
    358             //ajax.send(JSON.stringify(obj_json));//总之sb2的servlet不能自动转化json和FormData
    359             var formData = new FormData()
    360             formData.append("str_month", this.year + (this.month + 1 + 100 + "").substr(1));
    361             ajax.send(formData);
    362             //
    363         }
    364         else {
    365             that.obj_json = this.searchEnableUrl;//不去后端查询,直接把searchEnableUrl作为所需数据
    366             DatePicker.DrawButton(that, callback);
    367         }
    368     }
    369     else {
    370         DatePicker.DrawButton(that,callback);
    371     }
    372 
    373 }
    374 DatePicker.prototype.pick0=function(true_cbrq)//通过代码设置被选中按钮,
    375 {//如果被选中按钮在另一个月,则日历会自动跳转到相应月份,并且改变被选中按钮的颜色
    376     var year=parseInt(true_cbrq.substr(0,4));
    377     var month=parseInt(true_cbrq.substr(4,2));
    378     var day31=true_cbrq.substr(6,2);
    379     this.true_cbrq=true_cbrq;
    380     if(this.year!=year||(this.month+1)!=month)
    381     {
    382         this.year=year;
    383         this.month=month-1;
    384         this.true_cbrq=true_cbrq;
    385         this.changeMonth();
    386         this.changeYear();
    387         //this.reloadDateList()
    388 
    389     }
    390     else
    391     {
    392         if(this.inited)
    393         {
    394             this.pick(true_cbrq)
    395         }
    396         else {
    397             this.reloadDateList();
    398         }
    399     }
    400 }
    401 DatePicker.prototype.pick=function(true_cbrq)//修改被点击按钮的颜色
    402 {
    403     if(this.grid_picked)
    404     {
    405         this.grid_picked.style.backgroundColor=this.enableBackColor;
    406 
    407     }
    408     var grid=this.obj_enable["div_"+true_cbrq];
    409     if(grid)
    410     {
    411         grid.style.backgroundColor=this.enableBackColorPicked;
    412         this.grid_picked=grid;
    413     }
    414 }
    415 DatePicker.getDateStr=function(dt)//以下是一些辅助方法
    416 {
    417     var arr_day=["","一","二","三","四","五","六","日"];
    418     var str_date=dt.getFullYear()+"年"+(dt.getMonth()+1)+"月"+dt.getDate()+"日 星期"+arr_day[dt.getDay()];
    419     return str_date;
    420 }
    421 DatePicker.getDateStr2=function(dt)//标准八位日期
    422 {
    423     var str_date2=dt.getFullYear()+(dt.getMonth()+1+100+"").substr(1)+(dt.getDate()+100+"").substr(1);
    424     return str_date2;
    425 }
    426 //八位纯数字日期加两个杠,变成十位标准日期
    427 DatePicker.addGang=function(str)
    428 {
    429     var str_res=str.substr(0,4)+"-"+str.substr(4,2)+"-"+str.substr(6,2);
    430     return str_res;
    431 }
    432 //八位纯数字日期加上汉字年月日,并且去掉补位的0
    433 DatePicker.addNYR=function(str)
    434 {
    435     var str_res=str.substr(0,4)+"年"+parseInt(str.substr(4,2))+"月"+parseInt(str.substr(6,2))+"日";
    436     return str_res;
    437 }

    github地址:https://github.com/ljzc002/SimpleAni

  • 相关阅读:
    LeetCode "Super Ugly Number" !
    LeetCode "Count of Smaller Number After Self"
    LeetCode "Binary Tree Vertical Order"
    LeetCode "Sparse Matrix Multiplication"
    LeetCode "Minimum Height Tree" !!
    HackerRank "The Indian Job"
    HackerRank "Poisonous Plants"
    HackerRank "Kundu and Tree" !!
    LeetCode "Best Time to Buy and Sell Stock with Cooldown" !
    HackerRank "AND xor OR"
  • 原文地址:https://www.cnblogs.com/ljzc002/p/13957729.html
Copyright © 2011-2022 走看看