基于bootstrap的双日历插件 daterangepicker
我遇到需求是要求我将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/
转载时请注明出处及相应链接,本文永久地址:https://www.cnblogs.com/wangxiaoling/p/8696223.html,文章标题备注转载,如:xxx【转载】,谢谢!
基于bootstrap的双日历插件 daterangepicker的更多相关文章
- 基于bootstrap的时间选择插件daterangepicker以及汉化方法
双日历时间段选择插件 — daterangepicker是bootstrap框架后期的一个时间控件: 可以设定多个时间段选项:也可以自定义时间段:由用户自己选择起始时间和终止时间:时间段的最大跨度可以 ...
- bootstrap-paginator基于bootstrap的分页插件
bootstrap-paginator基于bootstrap的分页插件 GitHub 官网地址:https://github.com/lyonlai/bootstrap-paginator 步骤 引包 ...
- 基于Bootstrap的对话框插件bootstrap-dialog
写在前面: bootstrap本身提供了它自己的模态框,但是感觉并不太友好,当需要在页面点击一个按钮打开一个窗口页面时,使用原有的bootstrap的模态框,会把所有的代码全部写在一个jsp页面,显得 ...
- 基于bootstrap的分页插件
之前做的分页,是自己后端写一堆代码,返回给前端页面显示,感觉比较繁重.不灵活.今天研究下基于bootstrap的做的插件,整理如下: 在使用bootstrap的插件的时候,需要导入一些css.js. ...
- 【bootstrap】使用支持bootstrap的时间插件daterangepicker
其中的架包和代码,具体可以去GitHub下查看: https://github.com/AngelSXD/myagenorderdiscount 1.引入js和css <link href=&q ...
- 基于bootstrap 的datatable插件的使用(php版)
Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能.详细学习请参考其官网:http://datatables.net/中文网:http:/ ...
- 基于bootstrap的bootstrap-editable插件实现即时编辑功能
1.引用基本css和js: <link href="bootstrap3/css/bootstrap.min.css" rel="stylesheet" ...
- 基于Bootstrap的表格插件bootstrap-table
写在前面: 表格在项目中是使用比较多的,bootstrap-table插件也是非常好用,而且表格页面也比较好看.这里也简单的记录下. 下面直接看demo吧,代码中都注释了,有些用法,这里没有用到,需要 ...
- 基于bootstrap 的datatable插件的使用2(php版)
DataTables 中有两种不同的方式处理数据(排序.搜索.分页等): 客户端处理(Client)-- 所有的数据集预先加载(一次获取所有数据),数据处理都是在浏览器中完成的[逻辑分页]. 服务器端 ...
随机推荐
- API接口设计:防参数篡改+防二次请求
API接口由于需要供第三方服务调用,所以必须暴露到外网,并提供了具体请求地址和请求参数 为了防止被第别有用心之人获取到真实请求参数后再次发起请求获取信息,需要采取很多安全机制 1.首先: 需要采用ht ...
- JAVA发送http get/post请求,调用http接口、方法
import java.io.BufferedReader; import java.io.IOException;import java.io.InputStream; import java.io ...
- 基于 zepto 的触摸函数封装
移动端使用 zepto 做一些基于触摸的动画的时候,需要开发一个函数库. 功能:实例化对象以后能够,触发相应的事件,能够返回给我,当前的移动方向和 X 轴 或者 Y 轴 的移动位移. var Touc ...
- 从零开始学 Web 之 jQuery(二)获取和操作元素的属性
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- Mysql-8 配置主从复制(基于二进制日志)
目录 1. 实验环境 2. 安装MySQL8 3. 配置主从复制 4. 配置复制用户 5. 数据的同步 6. 配置从节点 7. 测试主从复制 1. 实验环境 System IP Host CentOS ...
- GAN笔记——理论与实现
GAN这一概念是由Ian Goodfellow于2014年提出,并迅速成为了非常火热的研究话题,GAN的变种更是有上千种,深度学习先驱之一的Yann LeCun就曾说,"GAN及其变种是数十 ...
- git第七节---git merge和git rebase
# git merge和git rebase 都可以进行分支合并 #git merge 合并后保留记录两个分支的记录 #git rebase合并后会展示成一个分支的记录,另一个分支的提交实际生成了一个 ...
- Python JSON 基本使用
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成, ...
- Badge
The following plugin provides functionality available through Pipeline-compatible steps. Read more a ...
- [转]ionic工作原理
本文转自:https://segmentfault.com/a/1190000011495654 1.Ionic的工作原理 Ionic通过cordova把一个Web应用嵌入原生应用 用户打开一个ion ...