DateTimePicker关于时间区间的设置

要求:设置一个时间区间,结束时间小于开始时间。精确到分钟。
下面是对控件初始化在操作,在初始化的过程中就可以对其输入区间进行大小的判断
//日期控件初始化
	function timer() {
		$("#new_start_time").datetimepicker({
			format : "yyyy-mm-dd hh:ii",
			autoclose : true,
			todayBtn : true,
			todayHighlight : true,
			startDate : 2000 - 1 - 1,
			language : 'zh-CN',
			startView : 2,//月视图
			showMeridian : true,
			pickerPosition : "bottom-left",
			minuteStep : 5
        }).on('changeDate',function(e){  
            var startTime = e.date;  
            $('#new_end_time').datetimepicker('setStartDate',startTime);  
        });
        $("#new_end_time").datetimepicker({
			format : "yyyy-mm-dd hh:ii",
			autoclose : true,
			todayBtn : true,
			todayHighlight : true,
			startDate : 2000 - 1 - 1,
			language : 'zh-CN',
			startView : 2,//月视图
			showMeridian : true,
			pickerPosition : "bottom-left",
			minuteStep : 5
        }).on('changeDate',function(e){  
            var endTime = e.date;  
            $('#new_start_time').datetimepicker('setEndDate',endTime);  
        });;
	}
效果图如下:

使得开始的时间不会在结束之后。不过最好还是用 bootstrapValidators来对其输入进行表单验证
$(document).ready(function() {
	$('#add_form').bootstrapValidator({
		message : 'This value is not valid',
		feedbackIcons : {
			valid : 'glyphicon glyphicon-ok',
			invalid : 'glyphicon glyphicon-remove',
			validating : 'glyphicon glyphicon-refresh'
		},
		fields : {
			new_start_time : {
				validators : {
					notEmpty : {
						message : '项目预期开始时间不能为空!'
					},
					callback : {
						message : '开始日期不能大于结束日期',
						callback : function(value,validator,$field,options) {
							// var end = $('#new_end_time').val().substr(0,10);
							// var start = value.substr(0,10);
							// return start<end;
							var end = $('#new_end_time').val();
							var start = value;
							return start < end;
						}
					}
				}
			},
			new_end_time : {
				validators : {
						notEmpty : {
							message : '项目预期结束时间不能为空!'
						}
 						callback:{
 							message : '开始日期不能大于结束日期',
 							callback : function(value,validator,$field) {
 								var start = $('#new_start_time').val();
 								var end = value;
 								return start < end;
 							}
 						}
					}
				}
			}
		});
	});

但是上面会出现一个小问题就是
bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验,所以我们需要在使用bootstrap validator和其他插件(bootstrap datetimepicker)的同时,当插件执行完毕后需要调用bootstrap validator重新验证。因此最后的时间字段验证的代码如下:
$("#new_end_time").datetimepicker({
			format : "yyyy-mm-dd hh:ii",
			autoclose : true,
			todayBtn : true,
			todayHighlight : true,
			startDate : 2000 - 1 - 1,
			language : 'zh-CN',
			startView : 2,//月视图
			showMeridian : true,
			pickerPosition : "bottom-left",
			minuteStep : 5
        }).on('changeDate',function(e){  
            var endTime = $("#new_end_time").val();  
            $('#new_start_time').datetimepicker('setEndDate',endTime);
            $('#add_form').bootstrapValidator('revalidateField', 'new_end_time');
        });
效果如图:

bootstrapValidator验证

时间控件的一些基本操作可以看: http://www.bootcss.com/p/bootstrap-datetimepicker/
bootstrapValidator的简单介绍可以看: http://1000hz.github.io/bootstrap-validator/

转载请标明出处
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值