Bootstrap時間選取器datetimepicker和daterangepicker使用執行個體解析,datetimepickerrange

來源:互聯網
上載者:User

Bootstrap時間選取器datetimepicker和daterangepicker使用執行個體解析,datetimepickerrange

在bootstrap中的時間選取器有兩種:dateTimePicker和dateRangePicker
 
 
 
1、dateTimePicker好像是官方嫡外掛程式:
 
 
 
需要的檔案:
 

1 <link rel="stylesheet" href="css/bootstrap-datetimepicker.min.css">
2 <script src="js/bootstrap-datetimepicker.min.js"></script>
3 <script src="js/bootstrap-datetimepicker.zh-CN.js"></script>
4 <script src="js/moment.min.js"></script>
 
 
 
 
API直接參考:http://www.bootcss.com/p/bootstrap-datetimepicker/
 
 
 
 
 
 
 
2、dateRangePicker好像是第三方外掛程式,它最終的是可以實現時間段的選擇。

需要的檔案: 

<link rel="stylesheet" href="css/daterangepicker-bs3.css">
<script src="js/daterangepicker.js"></script>
<script src="js/moment.min.js"></script> 

html代碼: 

<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代碼:

 <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>

但是這裡的月份漢化存在問題,建議需要去moment.min.js檔案裡面去修改。 

也可以在後期漢化,比較完整的代碼: 

var table;  $(function () {    table = $('#example').DataTable({      "ajax": {        "url":"/example/resources/server_processing_customCUrl.php",        "data": function ( d ) {          //添加額外的參數傳給伺服器          d.extra_search = $('#reportrange span').html();        }},      "processing": true,      "serverSide": true,      "language": {        "sProcessing": "處理中...",        "sLengthMenu": "顯示 _MENU_ 項結果",        "sZeroRecords": "沒有匹配結果",        "sInfo": "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項",        "sInfoEmpty": "顯示第 0 至 0 項結果,共 0 項",        "sInfoFiltered": "(由 _MAX_ 項結果過濾)",        "sInfoPostFix": "",        "sSearch": "搜尋:",        "sUrl": "",        "sEmptyTable": "表中資料為空白",        "sLoadingRecords": "載入中...",        "sInfoThousands": ",",        "oPaginate": {          "sFirst": "首頁",          "sPrevious": "上頁",          "sNext": "下頁",          "sLast": "末頁"        },        "oAria": {          "sSortAscending": ": 以升序排列此列",          "sSortDescending": ": 以降序排列此列"        }      },      "dom":          "<'row'<'span9'l<'#mytoolbox'>><'span3'f>r>"+          "t"+          "<'row'<'span6'i><'span6'p>>" ,      initComplete:initComplete    });   });   /**  * 表格載入渲染完畢後執行的方法  * @param data  */  function initComplete(data){     var dataPlugin =        '<div id="reportrange" class="pull-left dateRange" style="width:400px;margin-left: 10px"> '+        '日期:<i class="glyphicon glyphicon-calendar fa fa-calendar"></i> '+        '<span id="searchDateRange"></span> '+        '<b class="caret"></b></div> ';    $('#mytoolbox').append(dataPlugin);    //時間外掛程式    $('#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");      }    });    //設定日期菜單被選項 --結束--      //選擇時間後觸發重新載入的方法    $("#reportrange").on('apply.daterangepicker',function(){      //當選擇時間後,出發dt的重新載入資料的方法      table.ajax.reload();      //擷取dt請求參數      var args = table.ajax.params();      console.log("額外傳到背景參數值extra_search為:"+args.extra_search);    });     function getParam(url) {      var data = decodeURI(url).split("?")[1];      var param = {};      var strs = data.split("&");       for(var i = 0; i<strs.length; i++){        param[strs[i].split("=")[0]] = strs[i].split("=")[1];      }      return param;    }  }

幸福小彩蛋: 

在網上搜尋dateranggepicker的資料時,會找到一個比較官方的網站:http://www.daterangepicker.com/,api全面,但是實際的操作習慣並不便利;所以我更建議daterangepicker-bs3。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.