您的位置:首页 > Web前端 > BootStrap

Bootstrap时间控件 datetimepicker

2016-05-31 10:59 633 查看
一、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);

意思为:先取得Date对象,然后再字符串化,再用(来分隔字符串,然后取其中的第二个,再从右向左取第一项,也就是取时区项。
但在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());
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bootstrap datepicker