jQuery Datepicker传递01/01/0001 12:00:00 AM

时间:2012-06-23 17:19:50

标签: jquery .net asp.net-mvc jquery-ui jquery-ui-datepicker

我在这样的视图模型中有一个DateOfBirth字段,

[Required]
[DataType(DataType.Date)]
[Display(Name = "Date Of Birth")]
public DateTime DateOfBirth { get; set; }

以及具有此功能的视图

<li>
    @Html.LabelFor(m => m.DateOfBirth)
    @Html.TextBoxFor(m => m.DateOfBirth)
</li>

和一些jQuery添加datepicker,

<script type="text/javascript">
    $('#DateOfBirth').datepicker({
        yearRange: '1906:1994',
        changeMonth: true,
        changeYear: true,
        showAnim: 'bounce'
    });
</script>

如果我选择日期,例如1981年7月19日的07/19/1981,它会将值传递给控制器​​01/01/0001 12:00:00 AM,我收到错误“值'07 / 19/1981'对于出生日期无效。“我注意到,如果当天的价值是12或更低,它会通过,但如果当天高于12,它将失败。所以我尝试将datepicker中的格式更改为

dateFormat: 'dd/mm/yy'

然后当我提交表单时,它会给出错误“字段出生日期必须是日期”。

我需要做些什么来解决这个问题?如果可能的话,我希望能够将日期显示为月/日/年。

2 个答案:

答案 0 :(得分:0)

尝试使用这样的日期时间选择器:

$("#StartDate").datetimepicker({ timeFormat: 'hh:mm:ss', dateFormat: 'dd.mm.yy' });

您可以在此link中添加时间戳。我认为您提供的格式是错误的检查MSDN正确的日期时间格式字符串,但在我的情况下工作。 您还可以为日期选择器添加正确的格式。

答案 1 :(得分:0)

不要提及yearRange,请尝试minDate,maxDate就像

minDate: new Date(1906,0,1),
maxDate: new Date(1994,11,31)