我遇到了jQuery datepicker的问题,如果我使用除yy-m-d之外的日期格式,它不想打开正确的日期。我不想使用这种格式的原因是因为我想要一个易于阅读的格式,因为它基本上是这个页面的标题所以它看起来应该很好(这是一个工作人员时间表)。
以下是我初始化datepicker的方法:(注意我正在使用altField和altFormat)
$('#formattedpagedate').datepicker({
inline: true,
dateFormat: 'DD, d M, yy',
altField: '#pagedate',
altFormat: 'yy-mm-dd',
showAnim: 'slideDown',
changeMonth: true,
changeYear: true,
showOtherMonths: true,
selectOtherMonths: true,
showButtonPanel: false,
autoClose: true,
showOn: 'both',
buttonImage: 'images/icons/stock/calendar.png',
buttonImageOnly: true,
defaultDate: '".$pagedate."',
buttonText: 'Select a different date',
onSelect: function(dateText, inst) {
timesheetRefresh();
}
});
这是我的HTML(为了这篇文章而简化)
<input type=text id=pagedate name=pagedate value='".$pagedate."' readonly style='border:none;width:0px'>
<input type=text id=formattedpagedate class=clickable readonly value='".$formattedpagedate."'>
显然我正在使用PHP来填充这些输入的值以及初始化datepicker时的默认日期。基本上我正在做的是隐藏宽度为0px的altField(pagedate),并显示用户友好的格式化日期字段(formattedpagedate)。所以这是我发送到数据库的altField值,因为它按照我需要的方式格式化,它是我向用户显示的格式化字段以及用户可以点击的字段。
问题是当用户点击日历打开到2021年10月3日的格式化日期时(我假设它意味着它不理解日期)。
如果我将日期格式设置为 yy-m-d 或 yy-mm-dd 以外的任何其他格式,日历将打开错误的日期。即使只是省略连字符或使用句号而不是连字符也会破坏日期选择器。
如果我将日期格式设置为yy-mm-dd,日历将打开到正确的日期,我仍然可以在页面首次加载时格式化显示日期,这样就可以了,但如果用户选择新的日期,我会丢失很好的格式,它看起来有点愚蠢。
是否可以让datepicker以我选择的格式返回日期?或者我是以错误的方式解决这个问题?