gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:54:28 25 4
gpt4 key购买 nike

我正在尝试制作一个日期选择器,它将为已实现 html5 规范的浏览器运行,并为那些没有实现的浏览器提供 jquery ui 日期选择器。

到目前为止我已经:

<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">

在 Chrome27 中工作正常,提供原生 html5 控件,并在选择之前和之后以英国格式 dd/mm/yyyy 正确格式化日期。我使用以下 jquery 提供 jquery ui 日期选择器:

 if (Modernizr.inputtypes.date === false) {
$('.date').datepicker({
changeMonth: true,
changeYear: true,
minDate: 0,
maxDate: "+3Y"
}).prop("min", "").prop("max", "");
}

我还使用了以下国际化文件来格式化日期,并尝试在上面指定 dateFormat: '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 标签或者不必清空最小/最大,那将会很有用。谢谢

最佳答案

根据您的评论,您需要为不受支持的浏览器提供 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());

演示于JSFiddle

关于Jquery UI 和 HTML5 日期选择器 - 日期格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17319603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com