【发布时间】:2021-11-16 11:19:33
【问题描述】:
我正在使用以下代码以 MVC 表单形式向用户询问开始日期和结束日期
@using (Html.BeginForm("InfoEdit", "Info", FormMethod.Post, new { id = "Form" }))
{
<table>
<tr>
<td>Start DateTime</td>
<td>
@(Html.Kendo().DateTimePickerFor(model => model.StartDateTime).Name("StartDateTime").Format("dd/MM/yyyy HH:mm tt").ParseFormats(new string[] { "dd/MM/yyyy" }).HtmlAttributes(new { style = "width:300px;", onkeydown="javascript:return false;" }))
</td>
</tr>
<tr>
<td>Expiration DateTime</td>
<td>
@(Html.Kendo().DateTimePickerFor(model => model.ExpirationDateTime).Name("ExpirationDateTime").Format("dd/MM/yyyy HH:mm tt").ParseFormats(new string[] { "dd/MM/yyyy" }).HtmlAttributes(new { style = "width:300px;", onkeydown="javascript:return false;" }))
</td>
</tr>
</table>
}
javascript代码如下:
$(document).ready(function () {
function onChange() {
var StartDateTime = $("#StartDateTime").val().split(" ");
var date = StartDateTime[0].split("/");
var time = StartDateTime[1].split(":");
var dd = date[0];
var MM = date[1];
var yyyy = date[2];
var HH = time[0];
var min = time[1];
var tt = StartDateTime[2];
StartDateTime = new Date(yyyy,MM-1,dd,HH,min);
var ExpirationDateTime = new Date(StartDateTime.setHours(StartDateTime.getHours() + 1))
$("#ExpirationDateTime").data("kendoDateTimePicker").value(ExpirationDateTime);
}
$("#StartDateTime").kendoDateTimePicker({
change: onChange,
format: "dd/MM/yyyy HH:mm tt",
parseFormats: ["dd/MM/yyyy"]
});
}
我有以下值的模型:
[Required(ErrorMessage = "Start Datetime is required.")]
[DataType(DataType.DateTime)]
public DateTime StartDateTime { get; set; }
[Required(ErrorMessage = "Expiration Datetime is required.")]
[DataType(DataType.DateTime)]
public DateTime ExpirationDateTime { get; set; }
但是当我提交表单时,我收到如下错误:
The value '16/11/2021 11:10 AM' is not valid for StartDateTime.
The value '16/11/2021 12:10 PM' is not valid for ExpirationDateTime.
它适用于默认格式,即 MM/dd/yyyy,但我希望它作为 dd/MM/yyyy 工作。
我尝试使用kendoValidator,但它对我不起作用,或者我没有正确使用它。我该怎么做才能传递 dd/MM/yyyy 日期格式?
另外,需要注意的一点是,如果日期的 dd 部分小于或等于 12,则日期过去时不会出现任何错误。
【问题讨论】:
标签: javascript asp.net-mvc date datetime kendo-ui