如何从以下js查询中限制MinDate和MaxDate?

我正在一个项目中,我必须添加一个日期和时间选择器日历。 现在我面临的问题是如何将年份限制为2020年: month =仅当前月份。 日期=从今天到接下来的3天。

可能是我错了,但我想需要更改此代码部分,但不知道如何。因此,正在寻找解决方案。

这是我提到的代码段:

minDateTimeDate = new Date(minDateTime.getFullYear(),minDateTime.getMonth(),minDateTime.getDate(),0);
maxDateTimeDate = new Date(maxDateTime.getFullYear(),maxDateTime.getMonth(),maxDateTime.getDate(),0);

* This function tries to limit the ability to go outside the
* min/max date range
*/
    _limitMinmaxDateTime: function (dp_inst,adjustSliders) {
        var o = this._defaults,dp_date = new Date(dp_inst.selectedYear,dp_inst.selectedmonth,dp_inst.selectedDay);

        if (!this._defaults.showTimepicker) {
            return;
        } // No time so nothing to check here

        if ($.datepicker._get(dp_inst,'minDateTime') !== null && $.datepicker._get(dp_inst,'minDateTime') !== undefined && dp_date) {
            var minDateTime = $.datepicker._get(dp_inst,'minDateTime'),minDateTimeDate = new Date(minDateTime.getFullYear(),0);

            if (this.hourMinOriginal === null || this.minuteMinOriginal === null || this.secondMinOriginal === null || this.millisecMinOriginal === null || this.microsecMinOriginal === null) {
                this.hourMinOriginal = o.hourMin;
                this.minuteMinOriginal = o.minuteMin;
                this.secondMinOriginal = o.secondMin;
                this.millisecMinOriginal = o.millisecMin;
                this.microsecMinOriginal = o.microsecMin;
            }

            if (dp_inst.settings.timeonly || minDateTimeDate.getTime() === dp_date.getTime()) {
                this._defaults.hourMin = minDateTime.getHours();
                if (this.hour <= this._defaults.hourMin) {
                    this.hour = this._defaults.hourMin;
                    this._defaults.minuteMin = minDateTime.getMinutes();
                    if (this.minute <= this._defaults.minuteMin) {
                        this.minute = this._defaults.minuteMin;
                        this._defaults.secondMin = minDateTime.getSeconds();
                        if (this.second <= this._defaults.secondMin) {
                            this.second = this._defaults.secondMin;
                            this._defaults.millisecMin = minDateTime.getMilliseconds();
                            if (this.millisec <= this._defaults.millisecMin) {
                                this.millisec = this._defaults.millisecMin;
                                this._defaults.microsecMin = minDateTime.getmicroseconds();
                            } else {
                                if (this.microsec < this._defaults.microsecMin) {
                                    this.microsec = this._defaults.microsecMin;
                                }
                                this._defaults.microsecMin = this.microsecMinOriginal;
                            }
                        } else {
                            this._defaults.millisecMin = this.millisecMinOriginal;
                            this._defaults.microsecMin = this.microsecMinOriginal;
                        }
                    } else {
                        this._defaults.secondMin = this.secondMinOriginal;
                        this._defaults.millisecMin = this.millisecMinOriginal;
                        this._defaults.microsecMin = this.microsecMinOriginal;
                    }
                } else {
                    this._defaults.minuteMin = this.minuteMinOriginal;
                    this._defaults.secondMin = this.secondMinOriginal;
                    this._defaults.millisecMin = this.millisecMinOriginal;
                    this._defaults.microsecMin = this.microsecMinOriginal;
                }
            } else {
                this._defaults.hourMin = this.hourMinOriginal;
                this._defaults.minuteMin = this.minuteMinOriginal;
                this._defaults.secondMin = this.secondMinOriginal;
                this._defaults.millisecMin = this.millisecMinOriginal;
                this._defaults.microsecMin = this.microsecMinOriginal;
            }
        }

        if ($.datepicker._get(dp_inst,'maxDateTime') !== null && $.datepicker._get(dp_inst,'maxDateTime') !== undefined && dp_date) {
            var maxDateTime = $.datepicker._get(dp_inst,'maxDateTime'),maxDateTimeDate = new Date(maxDateTime.getFullYear(),0);

            if (this.hourMaxOriginal === null || this.minuteMaxOriginal === null || this.secondMaxOriginal === null || this.millisecMaxOriginal === null) {
                this.hourMaxOriginal = o.hourMax;
                this.minuteMaxOriginal = o.minuteMax;
                this.secondMaxOriginal = o.secondMax;
                this.millisecMaxOriginal = o.millisecMax;
                this.microsecMaxOriginal = o.microsecMax;
            }

            if (dp_inst.settings.timeonly || maxDateTimeDate.getTime() === dp_date.getTime()) {
                this._defaults.hourMax = maxDateTime.getHours();
                if (this.hour >= this._defaults.hourMax) {
                    this.hour = this._defaults.hourMax;
                    this._defaults.minuteMax = maxDateTime.getMinutes();
                    if (this.minute >= this._defaults.minuteMax) {
                        this.minute = this._defaults.minuteMax;
                        this._defaults.secondMax = maxDateTime.getSeconds();
                        if (this.second >= this._defaults.secondMax) {
                            this.second = this._defaults.secondMax;
                            this._defaults.millisecMax = maxDateTime.getMilliseconds();
                            if (this.millisec >= this._defaults.millisecMax) {
                                this.millisec = this._defaults.millisecMax;
                                this._defaults.microsecMax = maxDateTime.getmicroseconds();
                            } else {
                                if (this.microsec > this._defaults.microsecMax) {
                                    this.microsec = this._defaults.microsecMax;
                                }
                                this._defaults.microsecMax = this.microsecMaxOriginal;
                            }
                        } else {
                            this._defaults.millisecMax = this.millisecMaxOriginal;
                            this._defaults.microsecMax = this.microsecMaxOriginal;
                        }
                    } else {
                        this._defaults.secondMax = this.secondMaxOriginal;
                        this._defaults.millisecMax = this.millisecMaxOriginal;
                        this._defaults.microsecMax = this.microsecMaxOriginal;
                    }
                } else {
                    this._defaults.minuteMax = this.minuteMaxOriginal;
                    this._defaults.secondMax = this.secondMaxOriginal;
                    this._defaults.millisecMax = this.millisecMaxOriginal;
                    this._defaults.microsecMax = this.microsecMaxOriginal;
                }
            } else {
                this._defaults.hourMax = this.hourMaxOriginal;
                this._defaults.minuteMax = this.minuteMaxOriginal;
                this._defaults.secondMax = this.secondMaxOriginal;
                this._defaults.millisecMax = this.millisecMaxOriginal;
                this._defaults.microsecMax = this.microsecMaxOriginal;
            }
        }

        if (dp_inst.settings.minTime!==null) {
            var tempMinTime=new Date("01/01/1970 " + dp_inst.settings.minTime);
            if (this.hour<tempMinTime.getHours()) {
                this.hour=this._defaults.hourMin=tempMinTime.getHours();
                this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
            } else if (this.hour===tempMinTime.getHours() && this.minute<tempMinTime.getMinutes()) {
                this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
            } else {
                if (this._defaults.hourMin<tempMinTime.getHours()) {
                    this._defaults.hourMin=tempMinTime.getHours();
                    this._defaults.minuteMin=tempMinTime.getMinutes();
                } else if (this._defaults.hourMin===tempMinTime.getHours()===this.hour && this._defaults.minuteMin<tempMinTime.getMinutes()) {
                    this._defaults.minuteMin=tempMinTime.getMinutes();
                } else {
                    this._defaults.minuteMin=0;
                }
            }
        }

        if (dp_inst.settings.maxTime!==null) {
            var tempMaxTime=new Date("01/01/1970 " + dp_inst.settings.maxTime);
            if (this.hour>tempMaxTime.getHours()) {
                this.hour=this._defaults.hourMax=tempMaxTime.getHours();
                this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
            } else if (this.hour===tempMaxTime.getHours() && this.minute>tempMaxTime.getMinutes()) {
                this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
            } else {
                if (this._defaults.hourMax>tempMaxTime.getHours()) {
                    this._defaults.hourMax=tempMaxTime.getHours();
                    this._defaults.minuteMax=tempMaxTime.getMinutes();
                } else if (this._defaults.hourMax===tempMaxTime.getHours()===this.hour && this._defaults.minuteMax>tempMaxTime.getMinutes()) {
                    this._defaults.minuteMax=tempMaxTime.getMinutes();
                } else {
                    this._defaults.minuteMax=59;
                }
            }
        }

        if (adjustSliders !== undefined && adjustSliders === true) {
            var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)),10),minmax = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)),secMax = parseInt((this._defaults.secondMax - ((this._defaults.secondMax - this._defaults.secondMin) % this._defaults.stepSecond)),millisecMax = parseInt((this._defaults.millisecMax - ((this._defaults.millisecMax - this._defaults.millisecMin) % this._defaults.stepMillisec)),microsecMax = parseInt((this._defaults.microsecMax - ((this._defaults.microsecMax - this._defaults.microsecMin) % this._defaults.stepmicrosec)),10);

            if (this.hour_slider) {
                this.control.options(this,this.hour_slider,'hour',{ min: this._defaults.hourMin,max: hourMax,step: this._defaults.stepHour });
                this.control.value(this,this.hour - (this.hour % this._defaults.stepHour));
            }
            if (this.minute_slider) {
                this.control.options(this,this.minute_slider,'minute',{ min: this._defaults.minuteMin,max: minmax,step: this._defaults.stepMinute });
                this.control.value(this,this.minute - (this.minute % this._defaults.stepMinute));
            }
            if (this.second_slider) {
                this.control.options(this,this.second_slider,'second',{ min: this._defaults.secondMin,max: secMax,step: this._defaults.stepSecond });
                this.control.value(this,this.second - (this.second % this._defaults.stepSecond));
            }
            if (this.millisec_slider) {
                this.control.options(this,this.millisec_slider,'millisec',{ min: this._defaults.millisecMin,max: millisecMax,step: this._defaults.stepMillisec });
                this.control.value(this,this.millisec - (this.millisec % this._defaults.stepMillisec));
            }
            if (this.microsec_slider) {
                this.control.options(this,this.microsec_slider,'microsec',{ min: this._defaults.microsecMin,max: microsecMax,step: this._defaults.stepmicrosec });
                this.control.value(this,this.microsec - (this.microsec % this._defaults.stepmicrosec));
            }
        }

    },
edencpp 回答:如何从以下js查询中限制MinDate和MaxDate?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2829484.html

大家都在问