Jquery UI和HTML5日期选择器-日期格式不正确
我正在尝试制作一个日期选择器,它将为已经实现html5规范的浏览器运行,并为那些没有实现的浏览器提供一个jQueryUI日期选择器 到目前为止,我已经:Jquery UI和HTML5日期选择器-日期格式不正确,jquery,html,Jquery,Html,我正在尝试制作一个日期选择器,它将为已经实现html5规范的浏览器运行,并为那些没有实现的浏览器提供一个jQueryUI日期选择器 到目前为止,我已经: <input type="date" id="TargetDate1" name="TargetDate1" class="date" value="2013-06-29" min="2013-06-26" max="2016-06-26" required="required" autocomplete="off"> 我还使用了
<input type="date" id="TargetDate1" name="TargetDate1" class="date" value="2013-06-29" min="2013-06-26" max="2016-06-26" required="required" autocomplete="off">
我还使用了以下国际化文件来设置日期格式,并尝试在上面指定日期格式:“dd/mm/yy”
/*global jQuery */
/* English/UK initialisation for the jQuery UI date picker plugin. */
/* Written by Stuart. */
jQuery(function ($) {
$.datepicker.regional['en-GB'] = {
closeText: 'Done',
prevText: 'Prev',
nextText: 'Next',
currentText: 'Today',
monthNames: ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'],
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday'],
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
weekHeader: 'Wk',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['en-GB']);
});
在非html5浏览器中,当用户使用Jquery UI日期选择器选择日期(如在FF22中)时,它会以正确的格式向表单提供日期:dd/mm/yyyy。问题是,当表单最初加载时,日期的格式是yyyy-mm-dd格式,这是不正确的
有没有办法让jquery或其他方法为所有场景正确设置日期格式
我还注意到,通过将min=“2013-06-26”max=“2016-06-26”指定给FF,我无法保存数据,除非数据再次采用yyyy-mm-dd格式。因此,在上面的jquery中,它将其清空。如果有人能够在jquery中使用html5标记,或者不必清空min/max,那将非常有用。谢谢根据您的评论,对于不受支持的浏览器,您需要使用dd/mm/yyyy日期格式 如果这是正确的,那么尝试下面的一个
$(document).ready(function () {
if (Modernizr.inputtypes.date === false) {
var date = new Date($('#TargetDate1').val());
$('#TargetDate1').val(("0" + date.getDate()).slice(-2) + "/" + ("0" + (date.getMonth() + 1)).slice(-2) + "/" + date.getFullYear());
$('.date').datepicker({
changeMonth: true,
changeYear: true,
minDate: 0,
maxDate: "+3Y"
}).prop("min", "").prop("max", "");
}
});
要更改日期格式,需要执行以下操作:
var date = new Date($('#TargetDate1').val());
$('#TargetDate1').val(("0" + date.getDate()).slice(-2) + "/" + ("0" + (date.getMonth() + 1)).slice(-2) + "/" + date.getFullYear());
演示中您的日期选择器是否在FF22中工作?对我来说,它不起作用?你能检查一下吗?嗨,是的,很好用。我正在使用jquery最新版本。如果可能,制作一个JSFIDLE,我无法获得它。我得到了。很少有人澄清,在firefox和chrome中显示为
2013-06-29
和29-06-2013
,您的期望是什么?太好了,我显然误解了Jquery datepicker中dateFormat的用途:“dd/mm/yy”。我以为这是为你做格式化的。if(modernizer.inputtypes.date==false){$('.date')。每个(函数(){$(this)。日期选择器({changeMonth:true,changeYear:true,minDate:0,maxDate:+3Y})。prop(“min”,“max”,“max”);var targetDate=$(this.val();if(targetDate!==“”){var date=new date(targetDate);$(this.val((“0”+date.getDate()).slice(-2)+“/”+(“0”+(date.getMonth()+1)).slice(-2)+“/”+date getFullYear())};}@johnstaveley我很高兴能够帮助您。@johnstaveley+1,感谢您通过更新您的最终代码表示出兴趣。
var date = new Date($('#TargetDate1').val());
$('#TargetDate1').val(("0" + date.getDate()).slice(-2) + "/" + ("0" + (date.getMonth() + 1)).slice(-2) + "/" + date.getFullYear());