一、slice(0,-1)报错
转载自http://blog.chinaunix.net/uid-20332519-id-5733546.html
Bootstrap datetimepicker有多个版本,官方的链接中,只是datepicker,没有时间的选择,原版的datetimepicker也不再更新,不能用新版的jquery。
现在https://github.com/Eonasdan/bootstrap-datetimepicker这个版本最完善,但是一大堆依赖很头疼;
https://github.com/smalot/bootstrap-datetimepicker还不错,比较轻巧,但是用起来报错。
报错:
- TypeError:
- ...d"?false:k.title;this.defaultTimeZone=(new Date()).toString().split("(
原文:
- this.defaultTimeZone=(newDate()).toString().split("(")[1].slice(0,-1);
但在Firefox中,字符串化的结果为:“Wed May 25 2016 16:07:14 GMT+0800”,没有括号,导致错误。
更为通用的,时区可以用getTimezoneOffset()来获取,这个结果的单位是分钟,所以要除以60才可以:
修改为:
- this.defaultTimeZone='GMT '+(newDate()).getTimezoneOffset()/60
修改后就可以正常使用了。
另外还有一个字体错误,如果使用了fa字体,则会报错,系统中会检测不到fontAwesome,所以可以直接赋这个变量为true:
- this.fontAwesome=k.fontAwesome||this.element.data("font-awesome")||false;
- this.fontAwesome=true
二、添加bootstrap-datetimepicker日期控件的开始日期和结束日期之间的限制
转载自http://my.oschina.net/xiaoxiangdaizi/blog/485189
作为一个日期选择控件,当涉及到同时选择开始日期和结束日期时,两者的日期时间值之间是存在一定的约束条件的,即保证任何情况下开始日期要小于结束日期。
控件效果如下:
默认情况下,开始日期和结束日期之间是不存在关联的,需要我们进行设置。
//日期时间选择器
$("#datetimeStart").datetimepicker({
format: "yyyy-mm-dd",
autoclose: true,
minView: "month",
maxView: "decade",
todayBtn: true,
pickerPosition: "bottom-left"
}).on("click",function(ev){
$("#datetimeStart").datetimepicker("setEndDate", $("#datetimeEnd").val());
});
$("#datetimeEnd").datetimepicker({
format: "yyyy-mm-dd",
autoclose: true,
minView: "month",
maxView: "decade",
todayBtn: true,
pickerPosition: "bottom-left"
}).on("click", function (ev) {
$("#datetimeEnd").datetimepicker("setStartDate", $("#datetimeStart").val());
});