您好我从输入框中获取了我的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"/>
没有效果 我该如何修改我的代码? 或唯一简单的呼叫控制器动作?
答案 0 :(得分:2)
问题:您的自定义日期格式dd/mm/yyyy
无效。
小mm
用于表示Minutes
而不是Month
。
解决方案:您应该使用大写MM
来代表Month
。
所以你的格式应该是dd/MM/yyyy
试试这个:
$(document).ready(function () {
$("#CreationDate").datepicker({ autoclose: true,
todayHighlight: true, language: "pl", format: 'dd/MM/yyyy' });
})
答案 1 :(得分:1)
这篇博文应该回答你的问题; http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx
答案 2 :(得分:1)
您的日期选择器格式应为dd/mm/yy
而不是dd/mm/yyyy
。在我的例子中,以下代码适用于greate:
$(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 );
希望,这会有所帮助。