【问题标题】:The value xxx is not valid for yyy. Wrong datetime format值 xxx 对 yyy 无效。日期时间格式错误
【发布时间】:2014-02-27 11:28:42
【问题描述】:

您好,我正在从一个输入框中获取我的 dateTime,其中 datepicker 使用此代码初始化:

$(document).ready(function () {
    $("#CreationDate").datepicker({ autoclose: true, todayHighlight: true, language: "pl", format: 'dd/mm/yyyy' });
})

如您所见,格式为dd/mm/yyyy 这是我的模型:

public int Id { get; set; }
public int DeviceId { get; set; }
public string SerialNo { get; set; }
public System.DateTime CreationDate { get; set; }

当我尝试将我的模型输入数据库控制器时,因为Model.isValid=false而拒绝

如果我将格式更改为mm/dd/yyyy 模型是有效的,但这不是选项,因为用户不想以 Us 格式输入数据。 我在 web.config 中加入了全球化行:

<globalization culture="en-GB"/>

没有效果 我应该如何修改我的代码? 还是唯一的 simpleen 呼叫控制器操作?

【问题讨论】:

  • 试试dd/MM/yyyy
  • tried dd/mm/yyyy把mm改成MM会有影响吗?
  • mm 代表分钟 MM 代表月
  • 为什么你用工作解决方案删除了​​答案?
  • 我以为你在使用 jquery?

标签: c# asp.net-mvc entity-framework date datetime


【解决方案1】:

问题:您的自定义日期格式dd/mm/yyyy 无效。

mm用来表示Minutes而不是Month

解决方案:您应该使用大写的MM 来表示Month。 所以你的格式应该是dd/MM/yyyy

mm 分钟,从0059
MM 当月,从0112

试试这个:

$(document).ready(function () {
    $("#CreationDate").datepicker({ autoclose: true, 
    todayHighlight: true, language: "pl", format: 'dd/MM/yyyy' });
})

【讨论】:

  • documentation for datepicker 不建议使用大写字母,但我会检查一下
  • 您将 jQuery UI DatePicker 的格式字符串与 .NET DateTime 格式字符串混淆了。这行不通。
  • 它的引导日期选择器不是 jQuery UI 并且不知道为什么更改后它开始工作。更奇怪的是,根据文档,dd/mm/yyyy 是正确的
【解决方案2】:
【解决方案3】:

您的日期选择器格式应为dd/mm/yy 而不是dd/mm/yyyy。就我而言,以下代码更有效:

$(function () {
    $(".datePicker").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd/mm/yy',
        yearRange: "2013:2014"
    });
});

请注意另一件事,您可以将 CreationDate 字段从 System.DateTime 更改为 String。

然后,使用以下代码

 DateTime CreationDate ; 
 DateTime.TryParseExact(yourModel.CreationDate, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out CreationDate );

希望,这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-08-26
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多