• bootstrap里加入日期控件


    总统来说,关键是引用js 和 css,尤其是那些cdn的公网加速后的js和css,包括jquery和datetimepicker.css,本地化时间格式的js,datetimepicker.js

    一、jsp页面 引入 js

    <% pageContext.setAttribute("APP_PATH", request.getContextPath()); %>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <link href="${APP_PATH}/static/bootstrap-3.3.7-dist/css/bootstrap-theme.css"     rel="stylesheet">
    <link href="${APP_PATH}/static/bootstrap-3.3.7-dist/css/bootstrap.css"    rel="stylesheet">
    <link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
    
    <script    src="${APP_PATH}/static/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
    <script src="https://cdn.bootcss.com/moment.js/2.24.0/moment-with-locales.js"></script>
        <script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

    其中带$APP_PATH的,都是之前引用的,不是必须。

    二、在jsp页面,书写html的标签,我用到了4次控件。所以写了4个。

    <div class="form-group">
                <form  id="formpicker1" action="countHitsDate"   class="form-horizontal">
                <label>选择开始日期:</label>
    
                <!--指定 date标记-->
    
                <div class='input-group date' id='datetimepicker1'>
    
                    <input type='text' name="begin" class="form-control" id='inputpicker1' />
    
                    <span class="input-group-addon">
    
                        <span class="glyphicon glyphicon-calendar"></span>
    
                    </span>
    
                </div>
                
                <br/>
                             <label>选择结束日期:</label>
    
                <!--指定 date标记-->
    
                <div class='input-group date' id='datetimepicker2'>
    
                    <input type='text' name="end" class="form-control" id="inputpicker2" />
    
                    <span class="input-group-addon">
    
                        <span class="glyphicon glyphicon-calendar"></span>
    
                    </span>
    
                </div>
                
                <br>
                <button type="submit" id="countDate" class="btn btn-primary" formmethod="post" style="margin-right:15px"    >统计</button>
               
                  <label style="margin-right:5px;">
                    <input type="radio" name="coming" id="all" value="all" <c:if test="${radiopicker1=='all'}">checked</c:if> >        全部
                  </label>
                
                  <label style="margin-right:5px;">
                    <input type="radio" name="coming" id="wx" value="wx" <c:if test="${radiopicker1=='wx'}">checked</c:if>>
                    wx
                  </label>
                
                  <label>
                    <input type="radio" name="coming" id="pc" value="pc" <c:if test="${radiopicker1=='pc'}">checked</c:if>>
                    pc
                  </label>
                
                </form>
            </div>
            
    
    <h4><span class="label label-default"><c:out value="${tipsDate }"></c:out></span></h4>
    <hr>
    <br>
            <div class="form-group">
                <form id="formpicker1"  class="form-horizontal" action="countHitsTime">
                <label>选择开始日期+时间:</label>
    
                <!--指定 date标记-->
    
                <div class='input-group date' id='datetimepicker3'>
    
                    <input type='text' name="begin" class="form-control" id="inputpicker3" />
    
                    <span class="input-group-addon">
    
                        <span class="glyphicon glyphicon-calendar"></span>
    
                    </span>
    
                </div>
                
                <br/>
                <label>选择结束日期+时间:</label>
    
                <!--指定 date标记-->
    
                <div class='input-group date' id='datetimepicker4'>
    
                    <input type='text' name="end" class="form-control" id="inputpicker4" />
    
                    <span class="input-group-addon">
    
                        <span class="glyphicon glyphicon-calendar"></span>
    
                    </span>
    
                </div>
                
                <br>
                <button type="submit" id="countTime" class="btn btn-primary"     formmethod="post"  style="margin-right:15px"  >统计</button>
               <label style="margin-right:5px;">
                    <input type="radio" name="coming" id="all" value="all" <c:if test="${radiopicker2=='all'}">checked</c:if>>
                    全部
                  </label>
                
                  <label style="margin-right:5px;">
                    <input type="radio" name="coming" id="wx" value="wx" <c:if test="${radiopicker2=='wx'}">checked</c:if>>
                    wx
                  </label>
                
                  <label>
                    <input type="radio" name="coming" id="pc" value="pc" <c:if test="${radiopicker2=='pc'}">checked</c:if>>
                    pc
                  </label>
                
               
                </form>
                
            </div>
            <h4><span class="label label-default"><c:out value="${tipsTime }"></c:out></span></h4>
        </div>
    
        
    
        </div>
        

    三、 书写加载脚本,我引用了4个控件,所以加载了4次。

    <script type="text/javascript">
    
      
      $(function(){
    
            $('#datetimepicker1').datetimepicker({
                format: 'YYYY-MM-DD',
                locale: moment.locale('zh-cn'),
              
            });
    
           $('#datetimepicker2').datetimepicker({
                format: 'YYYY-MM-DD',
                locale: moment.locale('zh-cn'),
              
            });
            
            $('#datetimepicker3').datetimepicker({
                format: 'YYYY-MM-DD HH:mm',
                locale: moment.locale('zh-cn'),
              
            });
    
           $('#datetimepicker4').datetimepicker({
                format: 'YYYY-MM-DD HH:mm',
                locale: moment.locale('zh-cn'),
              
            });
        })
     
    
    
    
    </script>

    获取明天或者前天的时间

            var myDate = new Date();
            var nextDate =  new Date(myDate.getTime() + 24*60*60*1000);
    
            $('#datetimepicker1').datetimepicker({
                format: 'YYYY-MM-DD',
                locale: moment.locale('zh-cn'),
                  defaultDate:myDate,
            });
    
           $('#datetimepicker2').datetimepicker({
                format: 'YYYY-MM-DD',
                locale: moment.locale('zh-cn'),
                  defaultDate:nextDate,
            });

    另附配置表 https://cloud.tencent.com/developer/article/1362533

     $.fn.datetimepicker.defaults = {
            timeZone: '',
            format: false,
            dayViewHeaderFormat: 'MMMM YYYY',
            extraFormats: false,
            stepping: 1,
            minDate: false,
            maxDate: false,
            useCurrent: true,
            collapse: true,
            locale: moment.locale(),
            defaultDate: false,
            disabledDates: false,
            enabledDates: false,
            icons: {
                time: 'glyphicon glyphicon-time',
                date: 'glyphicon glyphicon-calendar',
                up: 'glyphicon glyphicon-chevron-up',
                down: 'glyphicon glyphicon-chevron-down',
                previous: 'glyphicon glyphicon-chevron-left',
                next: 'glyphicon glyphicon-chevron-right',
                today: 'glyphicon glyphicon-screenshot',
                clear: 'glyphicon glyphicon-trash',
                close: 'glyphicon glyphicon-remove'
            },
            tooltips: {
                today: 'Go to today',
                clear: 'Clear selection',
                close: 'Close the picker',
                selectMonth: 'Select Month',
                prevMonth: 'Previous Month',
                nextMonth: 'Next Month',
                selectYear: 'Select Year',
                prevYear: 'Previous Year',
                nextYear: 'Next Year',
                selectDecade: 'Select Decade',
                prevDecade: 'Previous Decade',
                nextDecade: 'Next Decade',
                prevCentury: 'Previous Century',
                nextCentury: 'Next Century',
                pickHour: 'Pick Hour',
                incrementHour: 'Increment Hour',
                decrementHour: 'Decrement Hour',
                pickMinute: 'Pick Minute',
                incrementMinute: 'Increment Minute',
                decrementMinute: 'Decrement Minute',
                pickSecond: 'Pick Second',
                incrementSecond: 'Increment Second',
                decrementSecond: 'Decrement Second',
                togglePeriod: 'Toggle Period',
                selectTime: 'Select Time'
            },
            useStrict: false,
            sideBySide: false,
            daysOfWeekDisabled: false,
            calendarWeeks: false,
            viewMode: 'days',
            toolbarPlacement: 'default',
            showTodayButton: false,
            showClear: false,
            showClose: false,
            widgetPositioning: {
                horizontal: 'auto',
                vertical: 'auto'
            },
            widgetParent: null,
            ignoreReadonly: false,
            keepOpen: false,
            focusOnShow: true,
            inline: false,
            keepInvalid: false,
            datepickerInput: '.datepickerinput',
            keyBinds: {
                up: function (widget) {
                    if (!widget) {
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().subtract(7, 'd'));
                    } else {
                        this.date(d.clone().add(this.stepping(), 'm'));
                    }
                },
                down: function (widget) {
                    if (!widget) {
                        this.show();
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().add(7, 'd'));
                    } else {
                        this.date(d.clone().subtract(this.stepping(), 'm'));
                    }
                },
                'control up': function (widget) {
                    if (!widget) {
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().subtract(1, 'y'));
                    } else {
                        this.date(d.clone().add(1, 'h'));
                    }
                },
                'control down': function (widget) {
                    if (!widget) {
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().add(1, 'y'));
                    } else {
                        this.date(d.clone().subtract(1, 'h'));
                    }
                },
                left: function (widget) {
                    if (!widget) {
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().subtract(1, 'd'));
                    }
                },
                right: function (widget) {
                    if (!widget) {
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().add(1, 'd'));
                    }
                },
                pageUp: function (widget) {
                    if (!widget) {
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().subtract(1, 'M'));
                    }
                },
                pageDown: function (widget) {
                    if (!widget) {
                        return;
                    }
                    var d = this.date() || this.getMoment();
                    if (widget.find('.datepicker').is(':visible')) {
                        this.date(d.clone().add(1, 'M'));
                    }
                },
                enter: function () {
                    this.hide();
                },
                escape: function () {
                    this.hide();
                },
                //tab: function (widget) { //this break the flow of the form. disabling for now
                //    var toggle = widget.find('.picker-switch a[data-action="togglePicker"]');
                //    if(toggle.length > 0) toggle.click();
                //},
                'control space': function (widget) {
                    if (!widget) {
                        return;
                    }
                    if (widget.find('.timepicker').is(':visible')) {
                        widget.find('.btn[data-action="togglePeriod"]').click();
                    }
                },
                t: function () {
                    this.date(this.getMoment());
                },
                'delete': function () {
                    this.clear();
                }
            },
            debug: false,
            allowInputToggle: false,
            disabledTimeIntervals: false,
            disabledHours: false,
            enabledHours: false,
            viewDate: false
        };
  • 相关阅读:
    MVC小系列(十五)【MVC+ZTree实现对树的CURD及拖拽操作】
    WCF身份验证之用户名密码认证
    sql 优化建议
    Redis key 设计技巧
    Redis配置文件详解
    Nlog配置文件
    Windown安装Mysql安装图解
    CentOS 7 命令备忘录
    WPF自定义ListBox样式
    WPF自定义圆形按钮样式资源文件
  • 原文地址:https://www.cnblogs.com/sdgtxuyong/p/15138670.html
Copyright © 2020-2023  润新知