EasyUI限制时间选择(开始时间小于结束时间)

Posted halfsaltedfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EasyUI限制时间选择(开始时间小于结束时间)相关的知识,希望对你有一定的参考价值。

datebox限制时间选择

对datebox可选择日期进行限制,目前感觉使用起来效果很好,不可选择的日期置灰不可点击

1. 限制开始时间小于结束时间

//using
limitStartDateAndEndDate($("#DateStart"), $("#DateEnd"));

/**
 * 限制开始时间小于结束时间
 * @param {开始时间对象} startDateObj 
 * @param {结束时间对象} endDateObj 
 * @returns {} 
 */
function limitStartDateAndEndDate(startDateObj,endDateObj) {
    startDateObj.next().click(function () {
        if (endDateObj.datebox("getValue") !== "") {
            startDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    var dateEnd = endDateObj.datebox("getValue");
                    var dateTimeEnd = new Date(dateEnd);
                    var validateTime = new Date(dateTimeEnd.getFullYear(), dateTimeEnd.getMonth(), dateTimeEnd.getDate());
                    return date <= validateTime;
                }
            });
        } else {
            startDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    return date;
                }
            });
        }
    });

    endDateObj.next().click(function () {
        if (startDateObj.datebox("getValue") !== "") {
            endDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    var dateStart = startDateObj.datebox("getValue");
                    var dateTimeStart = new Date(dateStart);
                    var validateTime = new Date(dateTimeStart.getFullYear(), dateTimeStart.getMonth(), dateTimeStart.getDate());
                    return date >= validateTime;
                }
            });
        } else {
            endDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    return date;
                }
            });
        }
    });
}

2. 限制开始时间小于指定时间

/**
 * 限制开始时间小于指定时间
 * 限制时间为containLimitStartDateObj.limitEndDate
 * @param {开始时间对象} startDateObj 
 * @param {包含限制时间的对象} containLimitEndDateObj 
 * @returns {} 
 */
function limitStartDateBeforeDate(startDateObj, containLimitEndDateObj) {
    startDateObj.next().click(function () {
        if (containLimitEndDateObj.limitEndDate !== "") {
            startDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    var dateTimeEnd = new Date(containLimitEndDateObj.limitEndDate);
                    var validateTime = new Date(dateTimeEnd.getFullYear(), dateTimeEnd.getMonth(), dateTimeEnd.getDate());
                    return date <= validateTime;
                }
            });
        } else {
            startDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    return date;
                }
            });
        }
    });
}

3. 限制结束时间大于指定时间

/**
 * 限制结束时间大于指定时间
 * 限制时间为containLimitStartDateObj.limitStartDate
 * @param {包含限制时间的对象} containLimitStartDateObj 
 * @param {结束时间对象} endDateObj 
 * @returns {} 
 */
function limitEndDateAfterDate(containLimitStartDateObj, endDateObj) {
    endDateObj.next().click(function () {
        if (containLimitStartDateObj.limitStartDate !== "") {
            endDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    var dateTimeStart = new Date(containLimitStartDateObj.limitStartDate);
                    var validateTime = new Date(dateTimeStart.getFullYear(), dateTimeStart.getMonth(), dateTimeStart.getDate());
                    return date >= validateTime;
                }
            });
        } else {
            endDateObj.datebox("calendar").calendar({
                validator: function (date) {
                    return date;
                }
            });
        }
    });
}

备注:

最后两个方法使用了对象进行了一次包裹,具体原因忘记了,因为直接传递时间字符串是有问题的,可能是由于值传递和引用传递的问题。

以上是关于EasyUI限制时间选择(开始时间小于结束时间)的主要内容,如果未能解决你的问题,请参考以下文章

element-ui date-picker 设置结束时间大于等于开始时间且开始时间小于等于结束时间

Easyui datebox 限制时间选择范围

第十九篇laydate设置起始时间,laydate设置开始时间和结束时间

easyui中设置开始日期只能选择比结束日期小的日期,js代码获取日期的值

WdatePicker-限制日期选择

如何在 ACF 日期选择器中限制 Wordpress 中的开始日期和结束日期的两个日期?