为什么 jQueryUI datepicker 在页面重新加载时交换日期和月份?

sha*_*oth 4 javascript jquery datepicker jquery-ui-datepicker asp.net-mvc-3

我有一个 MVC3 应用程序,其中一个页面有一个jQuery datepicker

<script>
    $(function () {
        $("#expirationDate").datepicker();
        $("#expirationDate").datepicker("option", "dateFormat", "dd/mm/yy");
    });
</script>

using (Html.BeginForm())
{
    @Html.TextBox("expirationDate")
    <input type="submit" value="Submit" />
}
Run Code Online (Sandbox Code Playgroud)

控制器动作是这样的:

public ActionResult DoStuff(String expirationDate)
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

日期选择器看起来很好,但行为很奇怪。

我在其中输入一些日期,例如 31/12/2012 为 12 月 31 日(注意我指定的格式为dd/mm/yy),然后按下按钮。控制进入控制器,在那里我看到expirationDate变量保持31/12/2012值。然后操作返回,然后我看到文本框为空。

然后我尝试 10/12/2012 - 它进入操作但是当页面再次显示时它变成 12/10/2012 - 显然月和日交换了。也许在 31/12 的情况下,它看到交换它们会产生一个无效的日期并丢弃它。

尽管明确指定了格式,为什么日期和月份会被交换?

sha*_*oth 5

这是我修复它的方法。我变了

$("#expirationDate").datepicker();
$("#expirationDate").datepicker("option", "dateFormat", "dd/mm/yy");
Run Code Online (Sandbox Code Playgroud)

$("#expirationDate").datepicker({ dateFormat: 'dd/mm/yy' });
Run Code Online (Sandbox Code Playgroud)

现在它工作得很好。

我的猜测是原始代码被破坏了。我没有制作原始代码,我在日期选择器页面上找到了它。