gpt4 book ai didi

c# - 将 C# 日期时间加载到 KendoUI 日期选择器

转载 作者:行者123 更新时间:2023-12-01 04:51:24 26 4
gpt4 key购买 nike

我正在尝试将日期时间加载到 KendoUI DatetimePicker。但它显示为/Date(1381964400000)/。我需要在 2013 年 10 月 17 日之前获取它

这是我的代码

日期时间选择器:

@(Html.Kendo().DatePicker().Name("invDate")

加载日期时间控制的脚本

$("#invLoad").click(function (e) {
$.ajax({
url: "@Url.Content("Invoice/ItemHeaderByTrnKy")",
data: { trnNo: $('#trnNo').val() },
dataType: "Json",
type: "POST",
success: function (data) {
if (data != null) {

$("#invDate").val(data.TrnDt);

}
else {
ClearAll();
}
},
error: function (e) {
ClearAll();
}
});

最佳答案

第一个选项是尝试将字符串解析为 JavaScript Date 对象,然后将该对象传递给 kendoDatePicker 小部件:

success: function (data) {
if (data) {
var dateval = parseInt(data.TrnDt.src.replace(/\/Date\((\d+)\)\//, "$1"));
if (!isNaN(dateval)) {
var d = new Date(dateval);
$("#invDate").data("kendoDatePicker").value(d);
} else {
ClearAll();
}
},

步骤:

  1. 使用 data.TrnDt.src.replace(/\/Date\((\d+)\)\//, "$1") 从字符串中提取数值并解析为整数.
  2. 创建一个Date对象
  3. Date 对象传递给 kendoDatePickervalue() 函数。

虽然这大部分有效,但结果可能并不完全符合您的预期。 .NET JSON 编码可能会生成本地时间偏移量,而 Date() 构造函数需要一个 UTC 偏移量值,然后转换为本地时间。因此,您的输出将偏移几个小时,具体取决于服务器的时区和客户端的时区。

在我的客户端上,解析您提供的日期值会得到 Thu Oct 17 2013 09:00:00 GMT+1000 的结果。这告诉我您可能正在 GMT+0100 时区之一运行。

解决此问题的唯一可靠方法是第二个选项:将所有 Date 值作为可由 Date() 构造函数解释的字符串返回。

如果您在服务器上将日期值格式化为 dd MMM yyyy 并将结果字符串传递给 new Date(),那么您将获得您期望的日期值。如果您只是通过 ASP Controller 中的 return Json(result); 返回一个对象,实现此目的的最简单方法是向您的对象添加翻译属性:

public string strTrnDt { get { return TrnDt.ToString("dd MMM yyyy"); } }

然后你的代码变成:

success: function (data) {
if (data) {
var d = new Date(data.strTrnDt);
$("#invDate").data("kendoDatePicker").value(d);
} else {
ClearAll();
}
},

或者更简单:

success: function (data) {
if (data) {
$("#invDate").val(data.strTrnDt);
} else {
ClearAll();
}
},

关于c# - 将 C# 日期时间加载到 KendoUI 日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com