【问题标题】:jQuery UI date picker shows selected value incorrectlyjQuery UI 日期选择器错误地显示所选值
【发布时间】:2012-11-15 17:41:13
【问题描述】:

我有以下代码将 jQuery UI 日期选择器小部件附加到输入字段:

    console.log($("#profileDialog .date-picker").val());
    $("#profileDialog .date-picker").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy-mm-dd',
        yearRange: "-115:-2",
        defaultDate: $("#profileDialog .date-picker").val()
    });

控制台日志正确输出值(例如:11/1/1955 12:00:00 AM),但是当我在输入字段内单击时,日期选择器会显示一个选定的日期 April 17 1897

任何想法为什么会发生这种情况?

【问题讨论】:

  • 未经修改的jQuery UI datepipcker 只显示日期,而不是时间。您的控制台显示您输入输入字段的默认日期。更改日期后,您将失去时间。至于April 17 1897 格式,当您将其设置为'yy-mm-dd' 时,我无法复制它。你能创建一个这样做的 jsFiddle 吗?
  • 只是猜测,但您认为这可能与yearRange 有关吗? 2012-115=1897
  • 我几乎可以肯定是dateFormatyearRange 导致了这个问题。这是一个小提琴:jsfiddle.net/NZtVW。日期是从服务器 (ASP.NET MVC) 发送的,所以我不确定如何解决它。

标签: jquery jquery-ui datepicker jquery-ui-datepicker


【解决方案1】:

您将1897 视为年份的原因是因为您将dateFormat 设置为yy-mm-dd,而默认日期的格式为dd-mm-yy,这不是有效日期(在给定格式)。

Here's a fiddle

【讨论】:

  • 是的,但这不是服务器发送的日期格式。
  • @Kassem 当您将 dateFormat 传递给 datepicker 对象时,您正在设置日期的格式,因此一旦您选择了一个日期,它将采用该格式..
  • 好的,现在我明白发生了什么。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 2012-11-07
  • 2016-08-24
  • 1970-01-01
  • 2018-01-21
  • 1970-01-01
相关资源
最近更新 更多