datetimepicker按日月小时不同周期多个日期查询

楼本家儿在写后台办理项目是碰到一个日期查询新需求,具体是如许的:有三个分歧的周期(小时、日、月),按照分歧的周期显示分歧的日期查询样式;说真话刚拿到这个需求有点懵。。。不外转化一下思维发现仍是很好理解的。我们可以将选择日期的 input标签按照周期分歧动态添加,并设心猿意马分歧的data-date-format 属性。看下结果图

方式/步调

  1. 1

    头部 head 引入css文件:

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">

    <link href="https://cdn.bootcss.com/smalot-bootstrap-datetimepicker/2.4.4/css/bootstrap-datetimepicker.min.css" rel="stylesheet">

  2. 2

    页面div添加设心猿意马周期部门,这里设置‘小时、日、月’三种周期,并添加默认的日期input框:

    <span>设心猿意马周期</span>

    <div class="btn-group">

    <button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

    <span class="chose">选择设心猿意马周期类型</span>

    <i class="caret"></i>

    </button>

    <ul class="dropdown-menu" id="time_way">

    <li><a href="#">按月</a></li>

    <li><a href="#">按日</a></li>

    <li><a href="#">按小时</a></li>

    </ul>

    </div>

  3. 3

    css样式编写:

    <style>

    .page {

    border: 1px solid #eee;

    padding: 20px 10px;

    margin-top: 20px;

    box-shadow: 0 1px 3px #eee;

    }

    .top {

    display:flex;

    width: 100%;

    height: auto;

    margin: 6px 0;

    font-size: 12px;

    font-weight: bold;

    color: #333;

    }

    .top .cell {

    margin-right: 10px;

    height: 34px;

    line-height: 34px;

    float: left;

    }

    .top .cell span {

    margin: 0 4px;

    float: left;

    }

    .btn-group{float: left;margin-right: 6px;}

    .top .cell input {

    float: left;

    display: inline !important;

    width: 200px !important;

    background: #fff;

    }

    .total {

    height: 30px;

    line-height: 30px;

    font-size: 12px;

    color: #333;

    }

    .table-responsive {

    width: 100%;

    }

    .table {

    border: 1px solid #eee;

    box-shadow: 0 1px 3px #eee;

    }

    .btn-group, .btn-group-vertical{

    vertical-align:top;

    }

    .btn-group-sm>.btn, .btn-sm{

    padding: 7px 10px !important;

    }

    .time_chose{

    float: left;

    }

    </style>

  4. 4

    底部js文件引入,楼本家儿这里用到了中文样式(bootstrap-datetimepicker.zh-CN.js),也可以不引入默认为英文样式:

    <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>

    <script src="https://cdn.bootcss.com/smalot-bootstrap-datetimepicker/2.4.4/js/bootstrap-datetimepicker.min.js"></script>

        <script src="https://cdn.bootcss.com/smalot-bootstrap-datetimepicker/2.4.4/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>

  5. 5

    周期选择jQuery方式:

    $('.dropdown-menu').on('click','li',function(){

    var wrd=$(this).children('a').text();

    $(this).parents('.btn-group').find('.chose').text(wrd);

    })

  6. 6

    先编写一个动态日期input选择框,将其data-date-format属性设置为动态‘format’字段,并将整个部门界说名称为‘str’,界说方式添加查询日期标签 add(format):

    var str='<input type="text" readonly class="form_datetime form-control datetimeStart" data-date-format="'+format+'">'+

    '<span> 至 </span>'+

    '<input  type="text" readonly class="form_datetime form-control datetimeEnd" data-date-format="'+format+'">';

    function add(format){

    $('.time_chose').append(str)

    }

  7. 7

    js选择分歧周期时,设心猿意马分歧的日期控件参数值,<div class="time_chose">内添加分歧的日期选择控件标签:

    $('#time_way').on('click','li',function(){

    _index=$(this).index();

    $('.time_chose').html('')

    if(_index == 0){

    minView=3;   //3 选择月

    format ='yyyy-mm';

    startView=3;

    $('body').find('.datetimepicker').find('div').hide();

    $('body').find('.datetimepicker-months').show();

    }else if(_index==1){

    minView=2;   //2 选择日

    format ='yyyy-mm-dd';

    startView=2;

    $('body').find('.datetimepicker').find('div').hide();

    $('body').find('.datetimepicker-days').show();

    }else if(_index==2){

    minView=1;   //1 选择小不时

    startView=1;

    format ='yyyy-mm-dd hh:ii';

    $('body').find('.datetimepicker').find('div').hide();

    $('body').find('.datetimepicker-hours').show();

    }

    console.log(format)

    add(format);  //添加日期组件

    $(".form-control").datetimepicker({

    format:format, // 揭示格局

    autoclose:true, // 选择日期后封闭

    startView:startView,  //日期时候选择器打开之后起首显示的视图 0-时 1-日 2-月  3-年

    minView:minView,  //最精准的时候选择为日期 0-分 1-时 2-日 3-月

    language:'zh-CN', //显示说话为中文

    });

    })

  8. 8

    启动代码。日期选择结果如下

  9. 9
  • 发表于 2018-12-19 00:00
  • 阅读 ( 726 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具