如何验证 Kendo 中的 dd/MM/yyyy 日期格式?
How to validate dd/MM/yyyy Date Format in Kendo?
我使用以下代码以 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
但它对我不起作用或者我可能没有使用它 correctly.What 我可以传递 dd/MM/yyyy 日期格式吗?
此外,需要注意的一件事是,如果日期的 dd 部分小于或等于 12,则日期无误地通过。
您正在使用剃刀语法应用格式,这可能是您收到错误的原因。我试过下面的代码,这对我有用。即使这样也适用于编辑模式。
Razor 语法
@Html.TextBoxFor(m=>m.StartDateTime)
JavaScript 语法
$(文档).ready(函数(){
$("#StartDateTime").kendoDatePicker({
格式:“dd/MM/yyyy HH:mm tt”,
});
});
由于en-US是默认文化,我们需要将文化设置为en-GB。
为此:
<script src="https://kendo.cdn.telerik.com/2021.3.1109/js/cultures/kendo.culture.en-GB.min.js"></script>
$(document).ready(function () {
//set the culture
kendo.culture("en-GB");
function onChange() {
// code goes here
}
}
并通过添加
修改Web.Config文件
<system.web>
<globalization uiCulture="en-GB" culture="en-GB"></globalization>
</system.web>
我使用以下代码以 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
但它对我不起作用或者我可能没有使用它 correctly.What 我可以传递 dd/MM/yyyy 日期格式吗?
此外,需要注意的一件事是,如果日期的 dd 部分小于或等于 12,则日期无误地通过。
您正在使用剃刀语法应用格式,这可能是您收到错误的原因。我试过下面的代码,这对我有用。即使这样也适用于编辑模式。
Razor 语法
@Html.TextBoxFor(m=>m.StartDateTime)
JavaScript 语法
$(文档).ready(函数(){ $("#StartDateTime").kendoDatePicker({ 格式:“dd/MM/yyyy HH:mm tt”, }); });
由于en-US是默认文化,我们需要将文化设置为en-GB。 为此:
<script src="https://kendo.cdn.telerik.com/2021.3.1109/js/cultures/kendo.culture.en-GB.min.js"></script>
$(document).ready(function () {
//set the culture
kendo.culture("en-GB");
function onChange() {
// code goes here
}
}
并通过添加
修改Web.Config文件<system.web>
<globalization uiCulture="en-GB" culture="en-GB"></globalization>
</system.web>