99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

bootstrap時(shí)間選擇器實(shí)現(xiàn)源碼分享

發(fā)布時(shí)間:2016-10-03 21:34  回復(fù):0  查看:2983   最后回復(fù):2016-10-03 21:34  

bootstrap框架中的時(shí)間選擇器有兩種: dateTimePicke r和 dateRangePicker,今天就和大家一起來扒一扒其具體用法和實(shí)現(xiàn)源碼。

 

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好像是第三方插件,它最終的是可以實(shí)現(xiàn)時(shí)間段的選擇:

 

效果

 

需要的文件:

 

1 <link rel="stylesheet" href="css/daterangepicker-bs3.css">

2 <script src="js/daterangepicker.js"></script>

3 <script src="js/moment.min.js"></script>

 html代碼:

 

 1 <div>

 2     <div style="margin-top:5px">

 3         <div>

 4             <div>

 5                 <label>

 6                     日期:

 7                 </label>

 8                 <div>

 9                     <div id="reportrange" class="pull-left dateRange" style="width:350px">

10                         <i class="glyphicon glyphicon-calendar fa fa-calendar"></i>

11                         <span id="searchDateRange"></span>

12                         <b></b>

13                     </div>

14                 </div>

15             </div>

16         </div>

17     </div>

18 </div>

js代碼:

 

 1 <script type="text/javascript">

 2     $(document).ready(function (){

 3         //時(shí)間插件

 4         $('#reportrange span').html(moment().subtract('hours', 1).format('YYYY-MM-DD HH:mm:ss') + ' - ' + moment().format('YYYY-MM-DD HH:mm:ss'));

 5         $('#reportrange').daterangepicker(

 6                 {

 7                     // startDate: moment().startOf('day'),

 8                     //endDate: moment(),

 9                     //minDate: '01/01/2012',    //最小時(shí)間

10                     maxDate : moment(), //最大時(shí)間

11                     dateLimit : {

12                         days : 30

13                     }, //起止時(shí)間的最大間隔

14                     showDropdowns : true,

15                     showWeekNumbers : false, //是否顯示第幾周

16                     timePicker : true, //是否顯示小時(shí)和分鐘

17                     timePickerIncrement : 60, //時(shí)間的增量,單位為分鐘

18                     timePicker12Hour : false, //是否使用12小時(shí)制來顯示時(shí)間

19                     ranges : {

20                         //'最近1小時(shí)': [moment().subtract('hours',1), moment()],

21                         '今日': [moment().startOf('day'), moment()],

22                         '昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],

23                         '最近7': [moment().subtract('days', 6), moment()],

24                         '最近30': [moment().subtract('days', 29), moment()]

25                     },

26                     opens : 'right', //日期選擇框的彈出位置

27                     buttonClasses : [ 'btn btn-default' ],

28                     applyClass : 'btn-small btn-primary blue',

29                     cancelClass : 'btn-small',

30                     format : 'YYYY-MM-DD HH:mm:ss', //控件中fromto 顯示的日期格式

31                     separator : ' to ',

32                     locale : {

33                         applyLabel : '確定',

34                         cancelLabel : '取消',

35                         fromLabel : '起始時(shí)間',

36                         toLabel : '結(jié)束時(shí)間',

37                         customRangeLabel : '自定義',

38                         daysOfWeek : [ '日', '', '', '', '', '', '' ],

39                         monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月',

40                             '七月', '八月', '九月', '十月', '十一月', '十二月' ],

41                         firstDay : 1

42                     }

43                 }, function(start, end, label) {//格式化日期顯示框

44                     $('#reportrange span').html(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss'));

45                 });

46         //設(shè)置日期菜單被選項(xiàng)  --開始--

47         /*

48          var dateOption ;

49          if("${riqi}"=='day') {

50          dateOption = "今日";

51          }else if("${riqi}"=='yday') {

52          dateOption = "昨日";

53          }else if("${riqi}"=='week'){

54          dateOption ="最近7";

55          }else if("${riqi}"=='month'){

56          dateOption ="最近30";

57          }else if("${riqi}"=='year'){

58          dateOption ="最近一年";

59          }else{

60          dateOption = "自定義";

61          }

62          $(".daterangepicker").find("li").each(function (){

63          if($(this).hasClass("active")){

64          $(this).removeClass("active");

65          }

66          if(dateOption==$(this).html()){

67          $(this).addClass("active");

68          }

69          });*/

70         //設(shè)置日期菜單被選項(xiàng)  --結(jié)束--

71     })

72 </script>

但是這里的月份漢化存在問題,建議需要去 moment.min.js 文件里面去修改

 

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

 

  1 var table;

  2    $(function () {

  3        table = $('#example').DataTable({

  4            "ajax": {

  5                "url":"/example/resources/server_processing_customCUrl.php",

  6                "data": function ( d ) {

  7                    //添加額外的參數(shù)傳給服務(wù)器

  8                    d.extra_search = $('#reportrange span').html();

  9                }},

 10            "processing": true,

 11            "serverSide": true,

 12            "language": {

 13                "sProcessing": "處理中...",

 14                "sLengthMenu": "顯示 _MENU_ 項(xiàng)結(jié)果",

 15                "sZeroRecords": "沒有匹配結(jié)果",

 16                "sInfo": "顯示第 _START_ 至 _END_ 項(xiàng)結(jié)果,共 _TOTAL_ 項(xiàng)",

 17                "sInfoEmpty": "顯示第 至 項(xiàng)結(jié)果,共 項(xiàng)",

 18                "sInfoFiltered": "(由 _MAX_ 項(xiàng)結(jié)果過濾)",

 19                "sInfoPostFix": "",

 20                "sSearch": "搜索:",

 21                "sUrl": "",

 22                "sEmptyTable": "表中數(shù)據(jù)為空",

 23                "sLoadingRecords": "載入中...",

 24                "sInfoThousands": ",",

 25                "oPaginate": {

 26                    "sFirst": "首頁",

 27                    "sPrevious": "上頁",

 28                    "sNext": "下頁",

 29                    "sLast": "末頁"

 30                },

 31                "oAria": {

 32                    "sSortAscending": ": 以升序排列此列",

 33                    "sSortDescending": ": 以降序排列此列"

 34                }

 35            },

 36            "dom":

 37                    "<'row'<'span9'l<'#mytoolbox'>><'span3'f>r>"+

 38                    "t"+

 39                    "<'row'<'span6'i><'span6'p>>"  ,

 40            initComplete:initComplete

 41        });

 42  

 43    });

 44  

 45    /**

 46     * 表格加載渲染完畢后執(zhí)行的方法

 47     * @param data

 48     */

 49    function initComplete(data){

 50  

 51        var dataPlugin =

 52                '<div id="reportrange" class="pull-left dateRange" style="width:400px;margin-left: 10px"> '+

 53                '日期:<i class="glyphicon glyphicon-calendar fa fa-calendar"></i> '+

 54                '<span id="searchDateRange"></span>  '+

 55                '<b></b></div> ';

 56        $('#mytoolbox').append(dataPlugin);

 57        //時(shí)間插件

 58        $('#reportrange span').html(moment().subtract('hours', 1).format('YYYY-MM-DD HH:mm:ss') + ' - ' + moment().format('YYYY-MM-DD HH:mm:ss'));

 59  

 60        $('#reportrange').daterangepicker(

 61                {

 62                    // startDate: moment().startOf('day'),

 63                    //endDate: moment(),

 64                    //minDate: '01/01/2012',    //最小時(shí)間

 65                    maxDate : moment(), //最大時(shí)間

 66                    dateLimit : {

 67                        days : 30

 68                    }, //起止時(shí)間的最大間隔

 69                    showDropdowns : true,

 70                    showWeekNumbers : false, //是否顯示第幾周

 71                    timePicker : true, //是否顯示小時(shí)和分鐘

 72                    timePickerIncrement : 60, //時(shí)間的增量,單位為分鐘

 73                    timePicker12Hour : false, //是否使用12小時(shí)制來顯示時(shí)間

 74                    ranges : {

 75                        //'最近1小時(shí)': [moment().subtract('hours',1), moment()],

 76                        '今日': [moment().startOf('day'), moment()],

 77                        '昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],

 78                        '最近7': [moment().subtract('days', 6), moment()],

 79                        '最近30': [moment().subtract('days', 29), moment()]

 80                    },

 81                    opens : 'right', //日期選擇框的彈出位置

 82                    buttonClasses : [ 'btn btn-default' ],

 83                    applyClass : 'btn-small btn-primary blue',

 84                    cancelClass : 'btn-small',

 85                    format : 'YYYY-MM-DD HH:mm:ss', //控件中fromto 顯示的日期格式

 86                    separator : ' to ',

 87                    locale : {

 88                        applyLabel : '確定',

 89                        cancelLabel : '取消',

 90                        fromLabel : '起始時(shí)間',

 91                        toLabel : '結(jié)束時(shí)間',

 92                        customRangeLabel : '自定義',

 93                        daysOfWeek : [ '日', '', '', '', '', '', '' ],

 94                        monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月',

 95                            '七月', '八月', '九月', '十月', '十一月', '十二月' ],

 96                        firstDay : 1

 97                    }

 98                }, function(start, end, label) {//格式化日期顯示框

 99  

100                    $('#reportrange span').html(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss'));

101                });

102  

103        //設(shè)置日期菜單被選項(xiàng)  --開始--

104        var dateOption ;

105        if("${riqi}"=='day') {

106            dateOption = "今日";

107        }else if("${riqi}"=='yday') {

108            dateOption = "昨日";

109        }else if("${riqi}"=='week'){

110            dateOption ="最近7";

111        }else if("${riqi}"=='month'){

112            dateOption ="最近30";

113        }else if("${riqi}"=='year'){

114            dateOption ="最近一年";

115        }else{

116            dateOption = "自定義";

117        }

118        $(".daterangepicker").find("li").each(function (){

119            if($(this).hasClass("active")){

120                $(this).removeClass("active");

121            }

122            if(dateOption==$(this).html()){

123                $(this).addClass("active");

124            }

125        });

126        //設(shè)置日期菜單被選項(xiàng)  --結(jié)束--

127  

128  

129        //選擇時(shí)間后觸發(fā)重新加載的方法

130        $("#reportrange").on('apply.daterangepicker',function(){

131            //當(dāng)選擇時(shí)間后,出發(fā)dt的重新加載數(shù)據(jù)的方法

132            table.ajax.reload();

133            //獲取dt請求參數(shù)

134            var args = table.ajax.params();

135            console.log("額外傳到后臺的參數(shù)值extra_search為:"+args.extra_search);

136        });

137  

138        function getParam(url) {

139            var data = decodeURI(url).split("?")[1];

140            var param = {};

141            var strs = data.split("&");

142  

143            for(var i = 0; i<strs.length; i++){

144                param[strs[i].split("=")[0]] = strs[i].split("=")[1];

145            }

146            return param;

147        }

148    }

 

 

 

文章來源:博客園

您還未登錄,請先登錄

熱門帖子

最新帖子

?