jQuery datepicker打开日期错误

时间:2016-04-06 15:57:26

标签: javascript php jquery date datepicker

我遇到了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以我选择的格式返回日期?或者我是以错误的方式解决这个问题?

0 个答案:

没有答案