Jquery UI和HTML5日期选择器-日期格式不正确

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"> 我还使用了

我正在尝试制作一个日期选择器,它将为已经实现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">
我还使用了以下国际化文件来设置日期格式,并尝试在上面指定日期格式:“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());