【问题标题】:datepicker return wrong dateformat(mm/dd/yyyy) at controllerdatepicker 在控制器返回错误的 dateformat(mm/dd/yyyy)
【发布时间】:2014-11-03 10:40:24
【问题描述】:

在 mvc 应用程序中,我使用了 datepicker 并有代码

 $("#StartDate").datepicker({
            changeMonth: true,
            changeYear: true,
            dateFormat: 'dd/mm/yy',
            dateonly: true,
        });

 $("#StartDate").datepicker('option', 'dateFormat', 'dd/mm/yy');

点击事件

function SearchFine() {
        var StartDate = $("#StartDate").val();
        var EndDate = $("#EndDate").val();

        var pathName = window.location.pathname;
        var virtualdir = pathName.split('/');
        var directory = "/" + virtualdir[1] + "/ManageLibrary/ManageReports/FineCollectionsReportByDate?StartDate=" + StartDate + "&&EndDate=" + EndDate;

        location.href = directory;
    }

但我得到的是 mm/dd/yyyy 格式

谢谢。

【问题讨论】:

  • jQuery datepicker 的dd/mm/yy 格式 mm/dd/yyyy"general" 格式。这意味着 jQuery 将yy 设置为四位数年份。见this
  • 如果 Y2K 教会了我们什么,那就是你真的应该使用所有 4 位数字!
  • @AndreiV 如果我使用 yyyy,请检查我是否使用过 yy,它是 2014 年到 20142014 年的演出
  • 也许我没有让自己明白,也许我不明白你的问题。您从哪里获得mm/dd/yyyy 格式的日期?是在浏览器上还是在服务器上?您的标题表明您正在控制器中获取它。
  • 是的,在控制器(意味着服务器)我现在使用同一台电脑

标签: c# jquery asp.net-mvc


【解决方案1】:

您的问题的可能解决方案是:

  • 使用例如 Firebug 验证是否将正确的值发送到服务器。
  • 您是否在 web.config 中设置了正确的本地化?
  • 请注意,当您执行 GET 请求时,ASP MVC 使用 InvariantUICulture,因此 2010 年 11 月 3 日将变为 11 月 3 日。您可以通过发送像 2010 年 12 月 31 日这样的日期来测试这一点,DateTime 将是等于default(DateTime),因为它无法解析为 mm/dd/yyyy。对于 POST 请求,当前线程的本地化用于解析日期字符串。
    • 解决方法:将日期作为字符串发送,解析到ActionResult中的DateTime

【讨论】:

  • InvariantUICulture 如何解决这个...?我添加了
  • 恐怕你不能修复InvariantUICulture..我也不知道为什么MVC是这样实现的。但作为一种解决方案,您可以将 ActionResult 的参数更改为 string 并自己进行解析。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 2019-10-29
相关资源
最近更新 更多