我一直在寻找一个不错的jQuery插件,既可以处理日期,也可以处理时间。核心UI的DatePicker
很棒,但很不幸,我需要能够输入时间。
我已经发现了一些关于使用DatePicker进行时间选择的方法,但它们都似乎非常不雅,并且谷歌搜索没有找到任何好的内容。
是否有一个良好的jQuery插件可以在单个UI控件中选择日期和时间,并具有可用的界面?
我一直在寻找一个不错的jQuery插件,既可以处理日期,也可以处理时间。核心UI的DatePicker
很棒,但很不幸,我需要能够输入时间。
我已经发现了一些关于使用DatePicker进行时间选择的方法,但它们都似乎非常不雅,并且谷歌搜索没有找到任何好的内容。
是否有一个良好的jQuery插件可以在单个UI控件中选择日期和时间,并具有可用的界面?
目前最好、最简单的日期时间选择器选项是http://trentrichardson.com/examples/timepicker/。
它是jQuery UI Datepicker的扩展,因此支持相同的主题,工作方式也非常相似,语法类似等等。我认为它应该与jQuery UI捆绑在一起。
@David,感谢您的推荐!@fluid_chelsea,我刚刚发布了Any+Time(TM) 3.x版本,它使用jQuery代替Prototype,并且界面大大改进,希望现在能够满足您的需求:
如果有任何问题,请通过我的网站上的评论链接与我联系!
我使用核心的UI DatePicker,以及下面的时间选择器。
这个灵感来自于Google日历使用的那个:
jQuery timePicker:
示例: http://labs.perifer.se/timedatepicker/
GitHub上的项目: https://github.com/perifer/timePicker
我发现它是所有替代品中最好的。用户可以快速输入,外观干净,简单,并允许用户输入具体到分钟的特定时间。
PS: 在我看来,滑块(一些替代时间选择器使用的工具)需要太多的点击并要求用户进行鼠标精确的操作(这使得输入变慢)。
我最喜欢的日期选择器是基于原型的AnyTime。我知道它不是jQuery,但对你来说可能仍然值得妥协。即使我完全不懂原型,使用起来也很容易。
我发现一个注意点:在某些浏览器上它不具备向前兼容性。也就是说,在Chrome上无法与较新版本的原型一起使用。
最近我进行了一些研究,但仍然没有找到一个既有一个好的日期选择器又包括一个好的时间选择器。最终我使用了eyecon的DatePicker,并使用两个简单的下拉框来选择时间。虽然我也考虑使用Timepickr.js,看起来是一个非常不错的方法。
http://www.rainforestnet.com/datetimepicker/datetimepicker.htm
这是演示页面链接:http://www.rainforestnet.com/datetimepicker/datetimepicker-demo.htm
好运
$(".arrival-date").click(function() {
NewCssCal($(this).attr('id'), 'mmddyyyy', 'dropdown', true, 12);
});
$('.frdtPicker').datetimepicker({
onClose: function(dateText, inst) {
var endDateTextBox = $('.todtPicker');
if (endDateTextBox.val() != '') {
var testStartDate = new Date(dateText);
var testEndDate = new Date(endDateTextBox.val());
if (testStartDate > testEndDate) {
var testStartDate = new Date(dateText).getTime() + 60000;
var testStartDate2 = new Date(testStartDate);
endDateTextBox.datetimepicker('setDate', (new Date(testStartDate2)));
}
}
else {
var testStartDate = new Date(dateText).getTime() + 60000;
var testStartDate2 = new Date(testStartDate);
endDateTextBox.datetimepicker('setDate', (new Date(testStartDate2)));
}
$('.frdtPicker').val(dateText); //endDateTextBox.val());
},
onSelect: function(selectedDateTime) {
var start = $(this).datetimepicker('getDate');
$('.todtPicker').datetimepicker('option', 'minDate', new Date(start.getTime()));
}
});