Bootstrap時(shí)間選擇器datetimepicker和daterangepicker使用實(shí)例解析
在bootstrap中的時(shí)間選擇器有兩種:dateTimePicker和dateRangePicker
1、dateTimePicker好像是官方嫡插件:
需要的文件:
<link rel="stylesheet" href="css/bootstrap-datetimepicker.min.css"> <script src="js/bootstrap-datetimepicker.min.js"></script> <script src="js/bootstrap-datetimepicker.zh-CN.js"></script> <script src="js/moment.min.js"></script>
API直接參考:http://www.bootcss.com/p/bootstrap-datetimepicker/
2、dateRangePicker好像是第三方插件,它最終的是可以實(shí)現(xiàn)時(shí)間段的選擇。
需要的文件:
<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 (){ //時(shí)間插件 $('#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', //最小時(shí)間 maxDate : moment(), //最大時(shí)間 dateLimit : { days : 30 }, //起止時(shí)間的最大間隔 showDropdowns : true, showWeekNumbers : false, //是否顯示第幾周 timePicker : true, //是否顯示小時(shí)和分鐘 timePickerIncrement : 60, //時(shí)間的增量,單位為分鐘 timePicker12Hour : false, //是否使用12小時(shí)制來(lái)顯示時(shí)間 ranges : { //'最近1小時(shí)': [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 : '起始時(shí)間', toLabel : '結(jié)束時(shí)間', 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')); }); //設(shè)置日期菜單被選項(xiàng) --開始-- /* 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"); } });*/ //設(shè)置日期菜單被選項(xiàng) --結(jié)束-- }) </script>
但是這里的月份漢化存在問(wèn)題,建議需要去moment.min.js文件里面去修改。
也可以在后期漢化,比較完整的代碼:
var table; $(function () { table = $('#example').DataTable({ "ajax": { "url":"/example/resources/server_processing_customCUrl.php", "data": function ( d ) { //添加額外的參數(shù)傳給服務(wù)器 d.extra_search = $('#reportrange span').html(); }}, "processing": true, "serverSide": true, "language": { "sProcessing": "處理中...", "sLengthMenu": "顯示 _MENU_ 項(xiàng)結(jié)果", "sZeroRecords": "沒有匹配結(jié)果", "sInfo": "顯示第 _START_ 至 _END_ 項(xiàng)結(jié)果,共 _TOTAL_ 項(xiàng)", "sInfoEmpty": "顯示第 0 至 0 項(xiàng)結(jié)果,共 0 項(xiàng)", "sInfoFiltered": "(由 _MAX_ 項(xiàng)結(jié)果過(guò)濾)", "sInfoPostFix": "", "sSearch": "搜索:", "sUrl": "", "sEmptyTable": "表中數(shù)據(jù)為空", "sLoadingRecords": "載入中...", "sInfoThousands": ",", "oPaginate": { "sFirst": "首頁(yè)", "sPrevious": "上頁(yè)", "sNext": "下頁(yè)", "sLast": "末頁(yè)" }, "oAria": { "sSortAscending": ": 以升序排列此列", "sSortDescending": ": 以降序排列此列" } }, "dom": "<'row'<'span9'l<'#mytoolbox'>><'span3'f>r>"+ "t"+ "<'row'<'span6'i><'span6'p>>" , initComplete:initComplete }); }); /** * 表格加載渲染完畢后執(zhí)行的方法 * @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); //時(shí)間插件 $('#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', //最小時(shí)間 maxDate : moment(), //最大時(shí)間 dateLimit : { days : 30 }, //起止時(shí)間的最大間隔 showDropdowns : true, showWeekNumbers : false, //是否顯示第幾周 timePicker : true, //是否顯示小時(shí)和分鐘 timePickerIncrement : 60, //時(shí)間的增量,單位為分鐘 timePicker12Hour : false, //是否使用12小時(shí)制來(lái)顯示時(shí)間 ranges : { //'最近1小時(shí)': [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 : '起始時(shí)間', toLabel : '結(jié)束時(shí)間', 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')); }); //設(shè)置日期菜單被選項(xiàng) --開始-- 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"); } }); //設(shè)置日期菜單被選項(xiàng) --結(jié)束-- //選擇時(shí)間后觸發(fā)重新加載的方法 $("#reportrange").on('apply.daterangepicker',function(){ //當(dāng)選擇時(shí)間后,出發(fā)dt的重新加載數(shù)據(jù)的方法 table.ajax.reload(); //獲取dt請(qǐng)求參數(shù) var args = table.ajax.params(); console.log("額外傳到后臺(tái)的參數(shù)值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; } }
幸福小彩蛋:
在網(wǎng)上搜索dateranggepicker的資料時(shí),會(huì)找到一個(gè)比較官方的網(wǎng)站:http://www.daterangepicker.com/,api全面,但是實(shí)際的操作習(xí)慣并不便利;所以我更建議daterangepicker-bs3。
如果大家還想深入學(xué)習(xí),可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附兩個(gè)精彩的專題:Bootstrap學(xué)習(xí)教程 Bootstrap實(shí)戰(zhàn)教程
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- angularjs封裝bootstrap時(shí)間插件datetimepicker
- bootstrap datetimepicker日期插件超詳細(xì)使用方法介紹
- Bootstrap3 datetimepicker控件使用實(shí)例
- bootstrap datetimepicker日期插件使用方法
- bootstrap-datetimepicker實(shí)現(xiàn)只顯示到日期的方法
- Bootstrap 設(shè)置datetimepicker在屏幕上面彈出設(shè)置方法
- bootstrap datetimepicker實(shí)現(xiàn)秒鐘選擇下拉框
- vue2.0 與 bootstrap datetimepicker的結(jié)合使用實(shí)例
- 基于bootstrap-datetimepicker.js不支持IE8的快速解決方法
- bootstrap datetimepicker控件位置異常的解決方法
相關(guān)文章
javascript設(shè)計(jì)模式 – 迭代器模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 迭代器模式原理與用法,結(jié)合實(shí)例形式分析了javascript迭代器模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04解析JavaScript中點(diǎn)號(hào)“.”的多義性
這篇文章主要介紹了JavaScript中點(diǎn)號(hào)“.”的多義性。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12JavaScript如何實(shí)現(xiàn)圖片懶加載(lazyload) 提高用戶體驗(yàn)(增強(qiáng)版)
這篇文章主要介紹了JavaScript如何實(shí)現(xiàn)圖片懶加載(lazyload) 提高用戶體驗(yàn)(增強(qiáng)版)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11詳解Javascript 中的 class、構(gòu)造函數(shù)、工廠函數(shù)
這篇文章主要介紹了詳解Javascript 中的 class、構(gòu)造函數(shù)、工廠函數(shù),需要的朋友可以參考下2017-12-12用javascript讀取xml文件讀取節(jié)點(diǎn)數(shù)據(jù)
這篇文章主要介紹了用javascript讀取xml文件讀取節(jié)點(diǎn)數(shù)據(jù)的具體實(shí)現(xiàn),需要的朋友可以參考下2014-08-08微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)
這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12javascript的var與let,const之間的區(qū)別詳解
這篇文章主要為大家介紹了?javascript的var與let,const之間的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12javascript函數(shù)報(bào)Uncaught?ReferenceError:?XXX?is?not?define
本文主要介紹了javascript函數(shù)報(bào)Uncaught?ReferenceError:?XXX?is?not?defined,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07