bootstrap-datepicker是bootstrap生态下的一款日期和时间控件来代替原生的html5日期控件,相比原生的html5日期控件bootstrap-datepicker可以更加方便的按需定制需要的功能和UI。本教程采用的是bootstrap-4.5.0、bootstrap-datepicker-1.9.0、jquery-3.5.1作为演示环境。
https://github.com/uxsolutions/bootstrap-datepicker
在网页中引用以下文件
<script src="https://www.itxst.com/package/jquery-3.5.1/jquery.min.js"></script>
<script src="https://www.itxst.com/package/bootstrap-4.5.0/js/bootstrap.min.js"></script>
<link href="https://www.itxst.com/package/bootstrap-4.5.0/css/bootstrap.css" rel="stylesheet">
<script src="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/js/bootstrap-datepicker.min.js"></script>
<script src="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/locales/bootstrap-datepicker.zh-CN.min.js"></script>
<link href="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/css/bootstrap-datepicker.min.css" rel="stylesheet">
初始化bootstrap-datepicker插件
$("#inputDate").datepicker({
language: 'zh-CN', //设置语言
autoclose: true, //选择后自动关闭
clearBtn: true,//清除按钮
format: "yyyy-mm-dd"//日期格式
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>bootstrap-datepicker例子</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
<script src="https://www.itxst.com/package/jquery-3.5.1/jquery.min.js"></script>
<script src="https://www.itxst.com/package/bootstrap-4.5.0/js/bootstrap.min.js"></script>
<link href="https://www.itxst.com/package/bootstrap-4.5.0/css/bootstrap.css" rel="stylesheet">
<script src="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/js/bootstrap-datepicker.min.js"></script>
<script src="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/locales/bootstrap-datepicker.zh-CN.min.js"></script>
<link href="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/css/bootstrap-datepicker.min.css" rel="stylesheet">
</head>
<body style="padding:10px;">
<div class="container ">
<input type="text" id="inputDate" class="form-control" placeholder="请选择日期">
</div>
<script>
$("#inputDate").datepicker({
language: 'zh-CN', //语言
autoclose: true, //选择后自动关闭
clearBtn: true,//清除按钮
format: "yyyy-mm-dd"//日期格式
});
</script>
</body>
</html>
通常我们会遇到这样的业务场景,选择开始日期和结束日期,比如开始日期选择了6月1号那么结束日期选择需要从6月1号开始。主要通过changeDate选择事件和setStartDate设置起始日期setEndDate设置结束日期,完整代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>bootstrap-datepicker开始和结束日期例子</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
<script src="https://www.itxst.com/package/jquery-3.5.1/jquery.min.js"></script>
<script src="https://www.itxst.com/package/bootstrap-4.5.0/js/bootstrap.min.js"></script>
<link href="https://www.itxst.com/package/bootstrap-4.5.0/css/bootstrap.css" rel="stylesheet">
<script src="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/js/bootstrap-datepicker.min.js"></script>
<script src="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/locales/bootstrap-datepicker.zh-CN.min.js"></script>
<link href="https://www.itxst.com/package/bootstrap-datepicker-1.9.0/css/bootstrap-datepicker.min.css" rel="stylesheet">
</head>
<body style="padding:10px;">
<div class="container ">
<div class="input-group input-daterange">
<div class="input-group-prepend">
<span class="input-group-text">预定日期</span>
</div>
<input type="text" id="inputDate1" placeholder="入住日期" class="form-control">
<div class="input-group-addon">-</div>
<input type="text" id="inputDate2" placeholder="退房日期" class="form-control">
</div>
</div>
<script>
//初始化
var ops = {
language: 'zh-CN', //语言
autoclose: true, //选择后自动关闭
clearBtn: true,//清除按钮
format: "yyyy-mm-dd",//日期格式
startDate: "2020-06-10", //开始时间,在这时间之前都不可选
};
$("#inputDate1").datepicker(ops);
$("#inputDate2").datepicker(ops);
//第一个输入选中日期后设置第二给输入框的开始日期
$("#inputDate1").datepicker().on("changeDate", function (e) {
$("#inputDate2").datepicker('setStartDate', e.date);
});
$("#inputDate2").datepicker().on("changeDate", function (e) {
$("#inputDate1").datepicker('setEndDate', e.date);
});
</script>
</body>
</html>
例子