基于bootstrap的双日历插件 daterangepicker
2018-06-24 01:49:44来源:未知 阅读 ()
我遇到需求是要求我将daterangepicker的一个双日期选择格式修改成两个单日期格式的日期选择框(方便手机端显示),要求如下:
1.两个单日期格式分别为开始日期和结束日期
2.开始日期可选择范围在今天及今天之后
3.结束日期在开始日期之后,根据开始日期变化
4.需要在选择好开始日期之后自动调起结束日期选择框进行选择。
下面贴代码:
引入相关的css:
<link href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdn.bootcss.com/bootstrap-daterangepicker/2.1.27/daterangepicker.min.css" rel="stylesheet">
引入相关js:
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap-daterangepicker/2.1.27/moment.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap-daterangepicker/2.1.27/daterangepicker.min.js"></script>
html:
<div class="col-sm-2 mb-2"> <input type="text" name="daterange1" id="startdate" class="form-control ks-daterange text-center" placeholder="入住时间"> </div> <div class="col-sm-2 mb-2"> <input type="text" name="daterange2" id="enddate" class="form-control ks-daterange text-center" placeholder="退房时间"> </div>
js:
var day_length = 1; //初始化今天距离结束日期的长度 $('#startdate').daterangepicker({ singleDatePicker: true, format : 'YYYY-MM-DD', //控件中from和to 显示的日期格式 separator : 'to', // startDate:moment().startOf('day'), // endDate: moment().add(1, "days"), minDate:moment(), locale : { format: "YYYY/MM/DD", applyLabel : "确定", cancelLabel : "取消", fromLabel : "起始时间", // toLabel : "结束时间", customRangeLabel : "自定义", daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ], monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月' ], firstDay : 1 }, }).on('hide.daterangepicker', function() { //计算长度 var s1 = $('#startdate').val(); s1 = new Date(s1.replace(/-/g, "/")); var s2 = new Date(); var days = s1.getTime() - s2.getTime(); var time = parseInt(days / (1000 * 60 * 60 * 24)); if(s1.getTime() - s2.getTime() < 0){ day_length = time + parseInt(1) } else { day_length = time + parseInt(2) } useLast() //初始化结束日期选择框,更新day_length $('#enddate').focus() //调起日期选择弹框 }) useLast() //初始化结束日期选择框,避免先选择结束日期的情况 //结束日期必须要封装成方法,不然无法更新day_length function useLast(){ $('#enddate').daterangepicker({ singleDatePicker: true, format : 'YYYY-MM-DD', //控件中from和to 显示的日期格式 separator : 'to', // startDate:moment().startOf(1,'day'), // endDate: moment().add(1, "days"), minDate:moment().add(day_length, "days"), locale : { format: "YYYY/MM/DD", applyLabel : "确定", cancelLabel : "取消", // fromLabel : "起始时间", toLabel : "结束时间", customRangeLabel : "自定义", daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ], monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月' ], firstDay : 1 } }) }
运行结果如下:
最后,介绍下这个时间插件的几个事件:
$('#reportrange').on('show.daterangepicker', function() { // console.log("show event fired"); }); $('#reportrange').on('hide.daterangepicker', function() { // console.log("hide event fired"); }); $('#reportrange').on('cancel.daterangepicker', function(ev, picker) { // console.log("cancel event fired"); });
我在上面的例子中,由于要动态改变day_length的值,就用到了hide.daterangepicker
此demo下载地址:https://files.cnblogs.com/files/wangxiaoling/demo_daterangepicker.rar
官方示例地址:http://www.daterangepicker.com/
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 基于JQuery的多标签实现代码 2020-03-29
- BootStrap 标题设置跨行无效的解决方法 2020-01-17
- 详解bootstrap table表格的使用方法 2019-12-14
- BootStrap使用file-input插件上传图片的方法 2019-09-08
- 基于 Lerna 管理 packages 的 Monorepo 项目最佳实践 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash