日期选择插件(一般用于PC)

Wdatepicker

官方文档:

http://www.yo28.cn/baike.php?s=wdatepickerapi%E6%96%87%E6%A1%A3

                                                                                                                                                                 

小坑:

  限制时间选择日期之后,即最大最小日期。

  遇到报:

                                                                                                                                                                 

                                                                                                                                                                

日期格式错误插件会报这个。

但是设置默认日期,第一次选择的时候,格式校验的时候报错,就得修改。

问题原因:

  选择日期的时候会进行时间格式,以及时间最大最小范围校验。

  限制日期原因。解决办法日期往后调1小时。+

设置时间默认值:只需给对应的输入框value赋值即可,注意日期格式的正确性。

使用参考:https://blog.csdn.net/xiangff_csdn/article/details/78688506

使用参考:https://www.cnblogs.com/zj0208/p/6893218.html

使用参考:https://blog.csdn.net/nnn_net/article/details/50340929

                                                                                                                                                                 

 

 

   需求---根据情况而定。只能选择100天以内的日期。


   Date.prototype.Format = function (fmt) { //输出算出后的日期 var o ={ "M+": this.getMonth() + 1, //月份  "d+": this.getDate(), //日  "h+": this.getHours(), //小时  "m+": this.getMinutes(), //分  "s+": this.getSeconds(), //秒  "q+": Math.floor((this.getMonth() + 3) / 3), //季度  "S": this.getMilliseconds() //毫秒  }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } Date.prototype.addDays = function (d) { //以天为单位计算 + or - this.setDate(this.getDate() + d); }; //获取当前时间 function getDetailTime(params){ var nowDate = new Date(); var year = nowDate.getFullYear(); var month = nowDate.getMonth() + 1; month = month<10? '0'+month:month; var day = nowDate.getDate(); day = day<10? '0'+day:day; var hour = nowDate.getHours(); hour = hour<10? '0'+hour:hour; var minutes = nowDate.getMinutes(); minutes = minutes<10? '0'+minutes:minutes; var seconds = nowDate.getSeconds(); seconds = seconds<10? '0'+seconds:seconds; var time = (hour+1)+":"+minutes+":"+seconds; if(params === 1){ return year+'-'+month+'-'+day+" "+hour+":"+minutes+":"+seconds }else{ return time; } }; //初始化日期起 $("#createTimeStart").val(getStartMinTime("#createTimeEnd") + " " + getDetailTime()); // //初始化日期止 $("#createTimeEnd").val(getDetailTime(1)); //开始时间----最小 function getStartMinTime(params){ if($(params).val() === ""){ var now = new Date(); now.addDays(-99); var getNowTime = now.Format("yyyy-MM-dd"); //当前时间---止没选 return getNowTime; }else{ var now = new Date($(params).val().split(" ")[0].split("-").join("/")); now.addDays(-99); var getNowTime = now.Format("yyyy-MM-dd"); //当前时间 return getNowTime; } }; //start最大时间 function getStartMaxTime(params){ if($(params).val()){ return $(params).val(); }else{ return "%y-%M-%d"; } }; //end最小时间 function getEndMinTime(params){ var endParams = ""; if(params === "#startTimeNow"){ endParams = "#createTimeEnd" }else if(params === "#useTimeStart"){ endParams = "#useTimeEnd" }else if(params === "#statementTimeStart"){ endParams = "#statementTimeEnd" }else if(params ==="#inactiveTimeStart"){ endParams = "#inactiveTime" } if($(params).val() === ""){ return getStartMinTime($(endParams)); }else{ return $(params).val(); }; }; //end最大时间 function getEndMaxTime(params){ if($(params).val() === ""){ return "%y-%M-%d"; }else{ var now = new Date($(params).val().split(" ")[0].split("-").join("/")); now.addDays(99); var getTime = now.Format("yyyy-MM-dd"); //当前时间 return getTime; } }; //起点日期 function firstTime(params){ WdatePicker({ dateFmt: 'yyyy-MM-dd HH:mm:ss', maxDate: getStartMaxTime(params), minDate: getStartMinTime(params), }); }; //终止日期 function endTime(params){ WdatePicker({ dateFmt: 'yyyy-MM-dd HH:mm:ss', maxDate: getEndMaxTime(params), minDate: getEndMinTime(params), }); }; //起日期 $("#createTimeStart").click(function(){ firstTime("#createTimeEnd"); }); //止日期 $("#createTimeEnd").click(function(){ endTime("#createTimeStart") }); //起日期 $("#useTimeStart").click(function(){ firstTime("#useTimeEnd") }); //止日期 $("#useTimeEnd").click(function(){ endTime("#useTimeStart") }); //起日期 $("#enterAccountTimeStart").click(function(){ firstTime("#enterAccountTimeEnd") }); //止日期 $("#enterAccountTimeEnd").click(function(){ endTime("#enterAccountTimeStart") }); //起日期 $("#inactiveTimeStart").click(function(){ firstTime("#inactiveTime") }); //止日期 $("#inactiveTime").click(function(){ endTime("#inactiveTimeStart") }); //起日期 $("#statementTimeStart").click(function(){ firstTime("#statementTimeEnd") }); //止日期 $("#statementTimeEnd").click(function(){ endTime("#statementTimeStart") });
  ...............
   Date.prototype.Format = function (fmt) {
        var o ={
            "M+": this.getMonth() + 1, //月份 
            "d+": this.getDate(), //日 
            "h+": this.getHours(), //小时 
            "m+": this.getMinutes(), //分 
            "s+": this.getSeconds(), //秒 
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
            "S": this.getMilliseconds() //毫秒 
        };
        if (/(y+)/.test(fmt))
            fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt))
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
    Date.prototype.addDays = function (d) {
        this.setDate(this.getDate() + d);
    };
    Date.prototype.addWeeks = function (w) {
        this.addDays(w * 7);
    };
    Date.prototype.addMonths = function (m) {
        var d = this.getDate();
        this.setMonth(this.getMonth() + m);
        if (this.getDate() < d)
            this.setDate(0);
    };
    Date.prototype.addYears = function (y) {
        var m = this.getMonth();
        this.setFullYear(this.getFullYear() + y);
        if (m < this.getMonth()) {
            this.setDate(0);
        }
    };
    var now = new Date('1970/01/01');   //注意日期格式
    now.addDays(DateDiffNum);//加减日期操作
    alert(now.Format("yyyy-MM-dd"));

参考:https://blog.csdn.net/ljw_jiawei/article/details/80421316

原文地址:https://www.cnblogs.com/swt-axios/p/12877637.html