上一篇
HTML中,可以使用`
标签并设置type
属性为date
来创建日期选择器,`。
在HTML中选择日期有多种方法,以下是详细介绍:
使用HTML5的<input type="date">
这是最简单直接的方式,适用于大多数现代浏览器。
| 属性 | 说明 |
|---|---|
type="date" |
定义输入类型为日期选择器 |
value |
设置默认选中的日期,格式为YYYY-MM-DD |
min |
可选日期的最小值 |
max |
可选日期的最大值 |
示例代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">HTML5日期选择器</title>
</head>
<body>
<label for="birthday">选择生日:</label>
<input type="date" id="birthday" name="birthday" value="2023-01-01" min="1990-01-01" max="2023-12-31">
</body>
</html>
优点:
- 无需引入外部库,代码简洁
- 移动端适配良好,交互流畅
- 自动验证日期格式
缺点:
- 旧版浏览器(如IE11)不支持
- 样式无法高度定制
使用jQuery UI Datepicker
适合需要复杂功能或兼容旧浏览器的场景。

步骤:
- 引入jQuery和jQuery UI库
- 初始化Datepicker组件
示例代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">jQuery UI Datepicker</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
</head>
<body>
<label for="datepicker">选择日期:</label>
<input type="text" id="datepicker" name="date">
<script>
$("#datepicker").datepicker({
dateFormat: "yy-mm-dd", // 日期格式
changeMonth: true, // 是否显示月份下拉框
changeYear: true, // 是否显示年份下拉框
minDate: new Date(2023, 0, 1), // 最小日期
maxDate: new Date(2023, 11, 31) // 最大日期
});
</script>
</body>
</html>
优点:
- 丰富的配置选项(如禁用特定日期、限制选择范围)
- 支持多种主题和样式定制
- 兼容IE6+等旧浏览器
缺点:
- 需要加载外部库文件
- 相对HTML5方式更耗资源
使用第三方库(以Flatpickr为例)
适合需要现代化UI和高级功能的场景。

步骤:
- 引入Flatpickr库
- 初始化组件并配置参数
示例代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">Flatpickr日期选择器</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
</head>
<body>
<label for="flatpickr">选择日期:</label>
<input type="text" id="flatpickr" name="date">
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
<script>
flatpickr("#flatpickr", {
dateFormat: "Y-m-d", // 日期格式
minDate: "2023-01-01", // 最小日期
disable: [ // 禁用特定日期
new Date(2023, 1, 14),
new Date(2023, 1, 15)
]
});
</script>
</body>
</html>
优点:
- 轻量级(约10KB压缩后)
- 现代化UI设计,支持暗黑模式
- 支持时间选择、范围选择等扩展功能
缺点:

- 需要加载外部库
- 部分高级功能需付费版本
兼容性处理方案
若需兼容旧浏览器,可结合HTML5和JavaScript实现降级方案:
<input type="date" id="dateInput">
<script>
if (!('date' in document.createElement('input'))) { // 检测浏览器是否支持date类型
// 替换为文本框并添加日期选择插件
var input = document.getElementById('dateInput');
input.type = 'text';
// 此处可初始化jQuery Datepicker或其他插件
}
</script>
FAQs
Q1:如何设置日期选择器的默认值为今天?
A1:使用value属性设置当前日期,
<input type="date" value="`${new Date().toISOString().split('T')[0]}" />
(boxed{})
Q2:如何限制用户只能选择未来日期?
A2:使用min属性设置为当前日期:
<input type="date" min="`${new Date().toISOString().split('T')[0]}" />
