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());
});
转载自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初试进度条
- Bootstrap 3.3.4 发布,Web 前端 UI 框架
- angular 指令简述
- Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
- 基于Silverlight DataGrid中无代码设置开始与结束日期DatePicker的实现方法
- 基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
- Bootstrap教程JS插件弹出框学习笔记分享
- Bootstrap框架动态生成Web页面文章内目录的方法
- JS组件Bootstrap Table使用实例分享
- Bootstrap表单组件教程详解
- Bootstrap每天必学之前端开发框架
- Bootstrap 粘页脚效果
- bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
- JS组件中bootstrap multiselect两大组件较量
- Bootstrap模仿起筷首页效果
- 基于Bootstrap的网页设计实例
- Bootstrap表格和栅格分页实例详解
- 基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
- BootStrap实用代码片段之一
- JS组件Bootstrap dropdown组件扩展hover事件