jQuery-Timepicker-Addon 时间选择器插件使用教程
2025-07-10 08:21:28作者:董斯意
概述
jQuery-Timepicker-Addon 是一个功能强大的时间选择器插件,它为 jQuery UI 的日期选择器(Datepicker)添加了时间选择功能。本教程将详细介绍该插件的各种使用方法和配置选项。
基础初始化
简单日期时间选择器
最基本的初始化方式是为输入框添加日期和时间选择功能:
$('#basic_example_1').datetimepicker();
仅时间选择器
如果只需要时间选择功能,可以使用 timepicker()
方法:
$('#basic_example_2').timepicker();
时间格式设置
可以通过 timeFormat
选项自定义时间显示格式:
$('#basic_example_3').datetimepicker({
timeFormat: "hh:mm tt" // 12小时制,带AM/PM
});
本地化支持
插件内置了多语言支持,可以轻松实现本地化:
$('#basic_example_4').timepicker(
$.timepicker.regional['es'] // 使用西班牙语配置
);
时区功能
基本时区使用
在时间格式中添加 'z' 可以显示时区:
$('#timezone_example_1').datetimepicker({
timeFormat: 'hh:mm tt z'
});
自定义时区选项
可以自定义可选的时区列表:
$('#timezone_example_2').datetimepicker({
timeFormat: 'HH:mm z',
timezoneList: [
{ value: -300, label: 'Eastern'},
{ value: -360, label: 'Central' },
{ value: -420, label: 'Mountain' },
{ value: -480, label: 'Pacific' }
]
});
滑块控件定制
添加网格线
可以为小时和分钟滑块添加网格线:
$('#slider_example_1').timepicker({
hourGrid: 4, // 小时滑块每4小时一个网格
minuteGrid: 10, // 分钟滑块每10分钟一个网格
timeFormat: 'hh:mm tt'
});
设置滑块步长
可以自定义滑块的变化步长:
$('#slider_example_2').datetimepicker({
timeFormat: 'HH:mm:ss',
stepHour: 2, // 小时步长为2
stepMinute: 10, // 分钟步长为10
stepSecond: 10 // 秒钟步长为10
});
触摸设备支持
添加 sliderAccess
插件以支持触摸设备:
$('#slider_example_3').datetimepicker({
addSliderAccess: true,
sliderAccessArgs: { touchonly: false }
});
使用下拉菜单替代滑块
可以使用下拉菜单代替滑块:
$('#slider_example_4').datetimepicker({
controlType: 'select', // 使用下拉菜单
timeFormat: 'hh:mm tt'
});
单行下拉菜单
将下拉菜单显示为单行:
$('#slider_example_4andHalf').datetimepicker({
controlType: 'select',
oneLine: true, // 单行显示
timeFormat: 'hh:mm tt'
});
辅助字段功能
基本辅助字段
可以将选择的日期时间同步到另一个输入框:
$('#alt_example_1').datetimepicker({
altField: "#alt_example_1_alt" // 辅助字段ID
});
自定义辅助字段格式
可以自定义辅助字段的显示格式:
$('#alt_example_3').datetimepicker({
altField: "#alt_example_3_alt",
altFieldTimeOnly: false,
altFormat: "yy-mm-dd", // 日期格式
altTimeFormat: "h:m t", // 时间格式
altSeparator: " @ " // 日期时间分隔符
});
时间输入功能
允许直接输入时间
启用时间输入框,允许用户直接输入时间:
$('#input_example_1').datetimepicker({
timeInput: true, // 启用时间输入
timeFormat: "hh:mm tt"
});
仅显示时间输入框
隐藏滑块,只显示时间输入框:
$('#input_example_2').datetimepicker({
timeInput: true,
timeFormat: "hh:mm tt",
showHour: false, // 隐藏小时滑块
showMinute: false // 隐藏分钟滑块
});
时间限制功能
设置小时范围
限制可选择的小时范围:
$('#rest_example_1').timepicker({
hourMin: 8, // 最早8点
hourMax: 16 // 最晚16点
});
设置日期范围
限制可选择的日期范围:
$('#rest_example_2').datetimepicker({
numberOfMonths: 2, // 显示2个月
minDate: 0, // 最早今天
maxDate: 30 // 最晚30天后
});
使用Date对象设置范围
使用Date对象精确设置日期时间范围:
$('#rest_example_3').datetimepicker({
minDate: new Date(2010, 11, 20, 8, 30), // 2010年12月20日8:30
maxDate: new Date(2010, 11, 31, 17, 30) // 2010年12月31日17:30
});
时间范围选择
关联开始和结束时间
创建关联的开始和结束时间选择器:
var startDateTextBox = $('#range_example_1_start');
var endDateTextBox = $('#range_example_1_end');
startDateTextBox.datetimepicker({
timeFormat: 'HH:mm z',
onClose: function(dateText, inst) {
// 确保结束时间不小于开始时间
if (endDateTextBox.val() != '') {
var testStartDate = startDateTextBox.datetimepicker('getDate');
var testEndDate = endDateTextBox.datetimepicker('getDate');
if (testStartDate > testEndDate)
endDateTextBox.datetimepicker('setDate', testStartDate);
}
},
onSelect: function (selectedDateTime){
// 设置结束时间的最小值为开始时间
endDateTextBox.datetimepicker('option', 'minDate',
startDateTextBox.datetimepicker('getDate'));
}
});
endDateTextBox.datetimepicker({
timeFormat: 'HH:mm z',
onClose: function(dateText, inst) {
// 确保开始时间不大于结束时间
if (startDateTextBox.val() != '') {
var testStartDate = startDateTextBox.datetimepicker('getDate');
var testEndDate = endDateTextBox.datetimepicker('getDate');
if (testStartDate > testEndDate)
startDateTextBox.datetimepicker('setDate', testEndDate);
}
},
onSelect: function (selectedDateTime){
// 设置开始时间的最大值为结束时间
startDateTextBox.datetimepicker('option', 'maxDate',
endDateTextBox.datetimepicker('getDate'));
}
});
使用内置范围方法
插件提供了简化范围选择的方法:
$.timepicker.datetimeRange(
startDateTextBox,
endDateTextBox,
{
minInterval: (1000*60*60), // 最小间隔1小时
dateFormat: 'dd M yy',
timeFormat: 'HH:mm',
start: {}, // 开始时间选择器选项
end: {} // 结束时间选择器选项
}
);
实用工具方法
获取和设置日期时间
// 设置日期时间
$('#utility_example_1_setdt').click(function(){
ex13.datetimepicker('setDate', (new Date()));
});
// 获取日期时间
$('#utility_example_1_getdt').click(function(){
alert(ex13.datetimepicker('getDate'));
});
时间格式化工具
$.datepicker.formatTime('HH:mm z',
{ hour: 14, minute: 36, timezone: '+2000' },
{}
);
时间解析工具
$.datepicker.parseTime('HH:mm:ss:l z', "14:36:21:765 +2000", {})
总结
jQuery-Timepicker-Addon 提供了丰富的功能和灵活的配置选项,可以满足各种日期时间选择的需求。通过本教程的学习,您应该能够掌握该插件的基本用法和高级功能,为您的Web应用添加专业的时间选择功能。