开始时间小于结束时间 WdatePicker这个控件是如何处理的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开始时间小于结束时间 WdatePicker这个控件是如何处理的相关的知识,希望对你有一定的参考价值。

示例4-3-1 前面的日期不能大于后面的日期且两个日期都不能大于 2020-10-01
合同有效期从 到
<input id="d4311" class="Wdate" type="text" onFocus="WdatePicker(maxDate:'#F$dp.$D(\'d4312\')||\'2020-10-01\'')"/>
<input id="d4312" class="Wdate" type="text" onFocus="WdatePicker(minDate:'#F$dp.$D(\'d4311\')',maxDate:'2020-10-01')"/>
参考技术A 通过JS去获取结束时间控件的值,然后把大于结束时间的日期变成不可选 参考技术B 两个时间是相对独立的,要控制还是通过其他脚本来实现 参考技术C 应该是事件判断的吧

WdatePicker-限制日期选择

场景:

1. 开始时间,和结束时间最大选择今天。

2. 开始时间和结束时间的最大时间间隔为30天。

jsp代码:

<!-- 时间段 -->
<form>
    <!-- 开始时间格式规则直接绑定在input上 -->
    开始时间:
    <input type="text" style="line-height: 12px;" id="start_time_id" readonly="readonly" class="Wdate"
    name="start_time_name" onClick="WdatePicker({readOnly:true,dateFmt:‘yyyy-MM-dd ‘,maxDate:‘#F{$dp.$D(\‘end_time_id\‘)||\‘%y-%M-%d\‘}‘,minDate:‘#F{$dp.$D(\‘end_time_id\‘,{d:-29})}‘})" 
    onchange="setEndTimeDurationWhileStartTimeChange();"/>
    
    <!-- 结束时间格式规则在js中进行及时调整 -->
    结束时间:
    <input type="text" style="line-height: 12px;" id="end_time_id" class="Wdate" name="end_time_name" readonly="readonly"/>
</form>

js代码:

// 结束时间:初始默认最大日期为今天
$(function(){
    // 设置结束时间的最大可取值为today
    $(‘#end_time_id‘).unbind("click");
    $(‘#end_time_id‘).bind("click",function(){
        WdatePicker({
            readOnly:true,
            dateFmt:‘yyyy-MM-dd ‘,
            minDate:‘#F{$dp.$D(\‘start_time_id\‘)}‘,
            maxDate:‘#F{\‘%y-%M-%d\‘}‘
        });
    });
});

// 开始时间值改变时,改变结束时间值得范围
function setEndTimeDurationWhileStartTimeChange(){
    var start = $(‘#start_time_id‘).val(); // 格式:2017-05-01 
    
    // 如果选中了开始时间
    if(start != "" && start != null){
        // endMaxDate = 开始时间+29天
        start = start.replace(/-/g,"/");
        var endMaxDate = new Date(start);
        endMaxDate.setDate(endMaxDate.getDate()+29); 
        
        // today = 今天
        var today = new Date();
        today.setHours(0);    
        today.setMinutes(0);    
        today.setSeconds(0);    
        today.setMilliseconds(0);
        
        // 如果endMaxDate>today
        if(endMaxDate.getTime()>today.getTime()){
            // 设置结束时间的最大可取值为today
            $(‘#end_time_id‘).unbind("click");
            $(‘#end_time_id‘).bind("click",function(){
                WdatePicker({
                    readOnly:true,
                    dateFmt:‘yyyy-MM-dd ‘,
                    minDate:‘#F{$dp.$D(\‘start_time_id\‘)}‘,
                    maxDate:‘#F{\‘%y-%M-%d\‘}‘
                });
            });
        }else{
            // 设置结束时间的最大可取值为endMaxDate
            $(‘#end_time_id‘).unbind("click");
            $(‘#end_time_id‘).bind("click",function(){
                WdatePicker({
                    readOnly:true,
                    dateFmt:‘yyyy-MM-dd ‘,
                    minDate:‘#F{$dp.$D(\‘start_time_id\‘)}‘,
                    maxDate:‘#F{$dp.$D(\‘start_time_id\‘,{d:29})}‘
                });
            });
        }
    }
    // 如果清空了开始时间,重设结束时间的范围,到今天为止
    else{
        // 设置结束时间的最大可取值为today
        $(‘#end_time_id‘).unbind("click");
        $(‘#end_time_id‘).bind("click",function(){
            WdatePicker({
                readOnly:true,
                dateFmt:‘yyyy-MM-dd ‘,
                minDate:‘#F{$dp.$D(\‘start_time_id\‘)}‘,
                maxDate:‘#F{\‘%y-%M-%d\‘}‘
            });
        });
    }
}

 

以上是关于开始时间小于结束时间 WdatePicker这个控件是如何处理的的主要内容,如果未能解决你的问题,请参考以下文章

使用WdatePicker时间插件限制页面上两个时间的前后范围

WdatePicker-限制日期选择

WdatePicker开始日期不能大于结束日期

WdatePicker设置日期范围

JS 中开始时间加小时数等于结束时间,怎么改这个代码?

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