美文网首页
bootstrap-daterangepicker双日历的使用及

bootstrap-daterangepicker双日历的使用及

作者: lllhy | 来源:发表于2018-10-17 14:09 被阅读0次

bootstrap-daterangepicker是基于bootstrap的一个双日历插件,用于选择日期范围,因原插件不符合项目的实际情况,因此在不影响原插件的使用下,对插件进行部分修改及功能拓展。下面说明一下更改和拓展的部分:

更改:

            1、更改了插件的布局和样式

            2、隐藏了原插件左边对日期范围的快捷选择部分(如:今天、明天、未来7天等),快捷选择放到了外部日期选择的右侧

            3、可在日期选择器下实时展示当前选择的日期区间并可点击进行快速更改。

            4、插件已做了汉化处理,无需再初始化汉化

拓展: 

            1、增加了切换年份的入口

先上效果图:

插件原效果:

上代码:

引入文件:

html:

<div class="input-group fl" style="width: 200px;">

                    <button type="button" class="btn btn-default form-control daterange-btn" id="daterange-btn">

                        <span></span>

                        <i class="glyphicon glyphicon-calendar pl-10 pr-10"></i>

                    </button>

                    <input type="hidden" value="" id="incomeStartDate">

                    <input type="hidden" value="" id="incomeEndDate">

                </div>

                <p class="timeSlot fl">

                    <span class="slot" onclick="choseTimeSlot(this, 0)">昨日</span>

                    <span class="slot" onclick="choseTimeSlot(this, 1)">今日</span>

                    <span class="slot active" onclick="choseTimeSlot(this, 2)">近三天</span>

                </p>

            </div>

css:

<style>

.fl{

float: left;

}

.main{

margin: 50px;

}

.timeSlot{

line-height: 30px;

}

.slot{

margin-left: 20px;

cursor: pointer;

}

.slot.active{

color: blue;

}

.pl-10{

padding-left: 10px;

}

.pr-10{

padding-right: 10px;

}

</style>

js:

<script>

    $(function () {

$('#daterange-btn span').html(GetDateStr(-2)+'  ~  '+ (new Date()).Format("yyyy-MM-dd"));

        $("#incomeStartDate").val(GetDateStr(-2));

        $("#incomeEndDate").val((new Date()).Format("yyyy-MM-dd"));

    $('#daterange-btn').daterangepicker({

                startDate:moment().subtract(2, 'days'),

                endDate: (new Date()).Format("yyyy-MM-dd"),

                locale:{

                    format: 'YYYY-MM-DD',

                    separator: "  ~  "

                }

            },

            function(start, end,label) {

                if(end==null){

                    end = start;

                }

                $('#daterange-btn span').html(start.format('YYYY-MM-DD')+'  ~  '+end.format('YYYY-MM-DD'));

                if($("#incomeStartDate").val() != start.format('YYYY-MM-DD')&& $("#incomeEndDate").val() != end.format('YYYY-MM-DD')){

                    $(".timeSlot .slot").removeClass("active");

                }

                $("#incomeStartDate").val(start.format('YYYY-MM-DD'));

                $("#incomeEndDate").val(end.format('YYYY-MM-DD'));

            });

    })

/*获取今天前后的日期*/

    function GetDateStr(AddDayCount) {

        var dd = new Date();

        dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期

        var y = dd.getFullYear();

        var m = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日期,不足10补0

        var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几号,不足10补0

        return y+"-"+m+"-"+d;

    }

    /*选择到账日期区间*/

    function choseTimeSlot(obj,type) {

        $(obj).addClass("active").siblings(".slot").removeClass("active");

        if(type == 0){

            /*昨天*/

            var date = GetDateStr(-1);

            $('#daterange-btn span').html(date+'  ~  '+date);

            $("#incomeStartDate").val(date);

            $("#incomeEndDate").val(date);

            $('#daterange-btn').data('daterangepicker').setStartDate(date);

            $('#daterange-btn').data('daterangepicker').setEndDate(date);

        }else if(type == 1){

            /*今天*/

            var date =(new Date()).Format("yyyy-MM-dd");

            $('#daterange-btn span').html(date+'  ~  '+date);

            $("#incomeStartDate").val(date);

            $("#incomeEndDate").val(date);

            $('#daterange-btn').data('daterangepicker').setStartDate(date);

            $('#daterange-btn').data('daterangepicker').setEndDate(date);

        }else if(type == 2){

            /*前三天*/

            $('#daterange-btn span').html(GetDateStr(-2)+'  ~  '+(new Date()).Format("yyyy-MM-dd"));

            $("#incomeStartDate").val(GetDateStr(-2));

            $("#incomeEndDate").val((new Date()).Format("yyyy-MM-dd"));

            $('#daterange-btn').data('daterangepicker').setStartDate(GetDateStr(-2));

            $('#daterange-btn').data('daterangepicker').setEndDate((new Date()).Format("yyyy-MM-dd"));

        }

    }

/*格式化日期*/

Date.prototype.Format = function (fmt) { //author: meizz

    var o = {

        "M+": this.getMonth() + 1,                //月份

        "d+": this.getDate(),                    //日

        "h+": this.getHours(),                  //小时

        "m+": this.getMinutes(),                //分

        "s+": this.getSeconds(),                //秒

        "q+": Math.floor((this.getMonth() + 3) / 3), //季度

        "S": this.getMilliseconds()            //毫秒

    };

    if (/(y+)/.test(fmt))

        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

    for (var k in o)

        if (new RegExp("(" + k + ")").test(fmt))

            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

    return fmt;

}

</script>

完整domo地址:https://github.com/lllhy/bootstrap-daterangepicker.git

相关文章

  • bootstrap-daterangepicker双日历的使用及

    bootstrap-daterangepicker是基于bootstrap的一个双日历插件,用于选择日期范围,因原...

  • 工具的推荐

    工欲善其事,必先利其器,工具的使用非常有重要性。日历的使用,单独使用日历,不要混合日历及其他功能的工具。

  • 日历的简单生成

    日历的算法及结构生成

  • JTCalendar使用技巧

    JTCalendar使用技巧1.简介:JTCalendar是一个可简单自定义的iOS日历控件,要求iOS 7及以上...

  • 日历和清单工具变成生活的一部分

    日历:使用电子日历才是正确地使用,没有达到高效能工具的使用姿势。数据同步,共享,备份等功能的日历系统和清单系统。 ...

  • pc端个性化日历实现

    一、实现日历组件 二、个性化日历使用

  • 苹果日历的使用

    日历里如何创建循环事件,日历共享。如何生成公共日历。 1、日历的使用:课堂上感受到叶老师创造不同的玩法,发现内容也...

  • [工具]日历的使用

    时间对于每个人来说,都是公平的。在单位时间上提高利用率,是一种学问。世界上20%的人占用了80%的财富,他们充分的...

  • MTK FAQ:如何实现连续的PCM流播放

    实现这类PCM的播放(类似于TTS)思路及samplecode如下: 使用双buffer的机制,TTS使用一个,D...

  • 工具:日历和清单

    日历:使用纸质日历已经OUT5年了,使用电子日历才是正确地掌握高效能工具的使用姿势。数据同步,共享,备份等功能的日...

网友评论

      本文标题:bootstrap-daterangepicker双日历的使用及

      本文链接:https://www.haomeiwen.com/subject/bvylzftx.html