bootstrap-daterangepicker

1,依赖关系css

使用以前须要引用bootstrap.css   daterangpicker.css    jquery.js   boostrap.js  moment.js   daterangpicker.js html

能够下载到本地,如果练习使用的话,可使用cdn  (http://www.bootcdn.cn/jquery

2,使用chrome

官方网站 http://www.daterangepicker.com/bootstrap

中文翻译文档 http://bsify.admui.com/daterangepicker/浏览器

(1)选项app

 

选项ide

类型网站

描述ui

startDate

Date string

日期范围的初始日期,要与“locale”设置的格式一致

endDate

Date string

日期范围的结束日期

minDate

Date string

用户可能选择的最先日期

maxDate

Date string

用户可能选择的最晚日期

maxSpan

Object

 

showDropdowns

true/false

在下拉日历框中选择年月日

minYear

Number(前提

showDropdownstrue

在下拉日历中的最小年

maxYear

Number(前提

showDropdownstrue

在下拉日历中的最大年限

showWeekNumbers

true/false

使用本地计算第xx周

showISOWeekNumbers

true/false

使用ISO计算周数字

timePicker

true/false

添加时间选择框

timePickerIncrement

number

时间增加范围

timePicker24Hour

true/false

24小时制

timePickerSeconds

true/false

timePicker中显示秒

ranges

Object

设置用户能选择的日期范围(例last7 daysMay 16,2018-May 22,2018

showCustomRangeLabel

true/false(前提,ranges已使用)

在末尾显示自定位范围

alwaysShowCalendars

true/false

 

opens

(‘left’/’right’/’center’)

日历出如今html元素下方的(左//中)的位置

drops

(‘down’/’up’)

日历出如今HTML元素的上/下(默认)位置

buttonClasses

string

被添加到applycancel按钮的css类名

applyButtonClasses

string

只能被添加到apply按钮的css类名

cancelButtonClasses

string

只能被添加到cancel按钮的css类名

locale

object

本地化的时间格式

singleDatePicker

true/false

只有一个日历

autoApply

true/false

隐藏applycancel按钮,只要选新的日期范围就当即apply

linkedCalendars

true/false

当启用时,显示的两个日历将始终是两个连续月份(即一月和二月),而且当单击日历上方的左箭头或右箭头时,两个日历都将被提早。当禁用时,两个日历能够分别提早和显示任何月份/年。

isInvalidDate

function

判断已选的日期是否有效

isCustomDate

function

 

autoUpdateInput

true/false

当被选的日期改变时,是否要自动更新<input>内的值

parentEl

string

将要添加日期范围选择器的父元素的jQuery选择器,若是不提供,这将是“body”。

 

(2)方法

方法

描述

setStartDateDate or string

将日期范围选择器当前选定的开始日期设置为所提供的日期

setEndDate(date or string)

 

(3)事件

事件

描述

show.daterangepicker

picker显示时触发

hide.daterangepicker

picker关闭时触发

showCalendar.daterangepicker

当日历显示时触发

hideCalendar.daterangepicker

当日历隐藏时触发

apply.daterangepicker

apply按钮或预约义范围点击时,触发

cancel.daterangepicker

cancel按钮点击时,触发


 3, 实践

参考 https://codepen.io/lunaliu/pen/QroJoV      

图1 图2

 

4,遇到的问题

可经过https://momentjscom.readthedocs.io/en/latest/ 手册查询moment.js的相关知识

(1)图2中的年月下拉框的长度不一致,在chrome浏览器中还会出现位置不在同一高度,可是在360则没有该问题

缘由:daterangepicker.css里面设置的宽度不一致,月份是56%,年是40%;

解决方法:引入新的css样式或在js里面经过querySelector(或是jquery的$().css() )获得对应的css类,而后设置对应的值。

.daterangepicker select.monthselect, .daterangepicker select.yearselect {  
  padding: 5px; 
  width:40%;
  border:1px solid #eee; 
}

 

(2)会出现无效数值NaN,在chrome和360里面都有这个问题

问题出现位置:

singleDatePicker:true,
  opens:'right',
  showDropdowns:true,
  showWeekNumbers:true,
  minDate:'2000-01-01',
  maxDate:new Date(),  
  locale:{
    format:'YYYY-MM-DD',    
    daysOfWeek:['日','一','二','三','四','五','六'],
    monthNames:['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
    firstDay:7  //问题就在这个地方。
  }

解决方法:当把firstDay删掉(默认为0)或改为其余数字(0-6)便可。

缘由:localeData.firstDayOfWeek(); // 0-6 (Sunday to Saturday) 没有7;

 

(3)设计要求日历初始值为空

参考: http://www.javashuo.com/article/p-wcqyvdit-mk.html

看了下daterangepicker的参数,能够经过设置autoUpdateInput="false",可是input框内不会接收任何picker的值。根据上文的介绍,能够在daterangepicker.js文件里面设置该功能。

 

 

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息