bootstrap daterangepicker双日历时间段选择控件详解


Posted in Javascript onJune 15, 2017

双日历时间段选择插件 — daterangepicker是bootstrap框架后期的一个时间控件,可以设定多个时间段选项,也可以自定义时间段,由用户自己选择起始时间和终止时间,时间段的最大跨度可以在程序里设定。我们项目里用到的Bootstrap版本是2.3.1,所以我把daterangepicker与Bootstrap-2.3.1进行了整合。  

一、需要引入的css与js 

<link href="bootstrap.min.css" rel="stylesheet">   
<link rel="stylesheet" type="text/css" media="all" href="daterangepicker-bs3.css" /> 
<link rel="stylesheet" type="text/css" media="all" href="daterangepicker-1.3.7.css" /> 
<link href="font-awesome-4.1.0/css/font-awesome.min.css" rel="stylesheet"> 
 
<script type="text/javascript" src="jquery-1.10.1.min.js"></script> 
<script type="text/javascript" src="bootstrap.min.js"></script> 
<script type="text/javascript" src="moment.js"></script> 
<script type="text/javascript" src="daterangepicker-1.3.7.js"></script>

 二、html部分代码

<div class="page-content"> 
      <!-- BEGIN PAGE CONTAINER--> 
  <div class="container-fluid"> 
    <div class="row-fluid" style="margin-top:5px"> 
      <div class="span4"> 
        <div class="control-group"> 
          <label class="control-label"> 
            日期: 
          </label> 
        <div class="controls"> 
          <div id="reportrange" class="pull-left dateRange" style="width:350px"> 
            <i class="glyphicon glyphicon-calendar fa fa-calendar"></i> 
            <span id="searchDateRange"></span> 
            <b class="caret"></b> 
          </div> 
        </div> 
      </div> 
    </div> 
  </div> 
</div>

三、使用js调用daterangepicker 

<script type="text/javascript"> 
    $(document).ready(function (){ 
          //时间插件 
          $('#reportrange span').html(moment().subtract('hours', 1).format('YYYY-MM-DD HH:mm:ss') + ' - ' + moment().format('YYYY-MM-DD HH:mm:ss')); 
     
          $('#reportrange').daterangepicker( 
              { 
                // startDate: moment().startOf('day'), 
                //endDate: moment(), 
                //minDate: '01/01/2012',  //最小时间 
                maxDate : moment(), //最大时间  
                dateLimit : { 
                  days : 30 
                }, //起止时间的最大间隔 
                showDropdowns : true, 
                showWeekNumbers : false, //是否显示第几周 
                timePicker : true, //是否显示小时和分钟 
                timePickerIncrement : 60, //时间的增量,单位为分钟 
                timePicker12Hour : false, //是否使用12小时制来显示时间 
                ranges : { 
                  //'最近1小时': [moment().subtract('hours',1), moment()], 
                  '今日': [moment().startOf('day'), moment()], 
                  '昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')], 
                  '最近7日': [moment().subtract('days', 6), moment()], 
                  '最近30日': [moment().subtract('days', 29), moment()] 
                }, 
                opens : 'right', //日期选择框的弹出位置 
                buttonClasses : [ 'btn btn-default' ], 
                applyClass : 'btn-small btn-primary blue', 
                cancelClass : 'btn-small', 
                format : 'YYYY-MM-DD HH:mm:ss', //控件中from和to 显示的日期格式 
                separator : ' to ', 
                locale : { 
                  applyLabel : '确定', 
                  cancelLabel : '取消', 
                  fromLabel : '起始时间', 
                  toLabel : '结束时间', 
                  customRangeLabel : '自定义', 
                  daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ], 
                  monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', 
                      '七月', '八月', '九月', '十月', '十一月', '十二月' ], 
                  firstDay : 1 
                } 
              }, function(start, end, label) {//格式化日期显示框 
                 
                $('#reportrange span').html(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss')); 
              }); 
 
      //设置日期菜单被选项 --开始-- 
     /* 
         var dateOption ; 
         if("${riqi}"=='day') { 
            dateOption = "今日"; 
         }else if("${riqi}"=='yday') { 
            dateOption = "昨日"; 
         }else if("${riqi}"=='week'){ 
            dateOption ="最近7日"; 
         }else if("${riqi}"=='month'){ 
            dateOption ="最近30日"; 
         }else if("${riqi}"=='year'){ 
            dateOption ="最近一年"; 
         }else{ 
            dateOption = "自定义"; 
         } 
          $(".daterangepicker").find("li").each(function (){ 
            if($(this).hasClass("active")){ 
              $(this).removeClass("active"); 
            } 
            if(dateOption==$(this).html()){ 
              $(this).addClass("active"); 
            } 
         });*/ 
            //设置日期菜单被选项 --结束-- 
    }) 
</script>

 四、效果图

bootstrap daterangepicker双日历时间段选择控件详解

五、实例下载地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解读IE和firefox下JScript和HREF的执行顺序
Jan 12 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
AngularJS HTML DOM详解及示例代码
Aug 17 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
vue.js实现条件渲染的实例代码
Jun 22 Javascript
vue-router之实现导航切换过渡动画效果
Oct 31 Javascript
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
JavaScript实现移动端拖动元素
Nov 24 Javascript
详解react-router如何实现按需加载
Jun 15 #Javascript
jQuery实现 RadioButton做必选校验功能
Jun 15 #jQuery
bootstrap daterangepicker汉化以及扩展功能
Jun 15 #Javascript
validationEngine 表单验证插件使用实例代码
Jun 15 #Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 #Javascript
详解react如何在组件中获取路由参数
Jun 15 #Javascript
react-router JS 控制路由跳转实例
Jun 15 #Javascript
You might like
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
浅谈Postman解决token传参的问题
2018/03/31 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
Python使用MD5加密字符串示例
2014/08/22 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
党员岗位承诺口号大全
2014/03/28 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
教师研修随笔感言
2015/11/18 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL