gpt4 book ai didi

json - 如何使用 json 和 javascript/jquery 正确处理数据库时间值

转载 作者:行者123 更新时间:2023-12-04 20:16:24 28 4
gpt4 key购买 nike

有谁知道如何解析 json 时间跨度对象?
我想将 UTC 时间跨度返回到我的 View ,然后将其转换为本地客户端时间,但我还没有找到任何有关如何执行此操作的引用。

我正在使用 mvc,所以我有这个模型:

public class TimeSpanModel
{
public TimeSpan StartTime { get; set; }

public TimeSpanModel()
{
this.StartTime = DateTime.UtcNow.TimeOfDay;

}
}

在我的 Controller 中,我将此模型返回到我的 View 中,如下所示:
public ActionResult GetTimeSpanInfo()
{
TimeSpanModel tsm= new TimeSpanModel ();
return Json(tsm);
}

我正在从 View 中调用这样的电话:
$.ajax({
type: 'POST',
url: '@Url.Content("~/Controller/GetTimeSpanInfo")',
success: function (data) {
alert(data.StartTime);
var dt = new Date(data.StartTime);
alert(dt.toString());
}
});

但在第一个警告框中,我只看到:[object Object]
所以我尝试将时间跨度转换为日期,但在第二个警报框中,我得到无效日期。

我是否必须将时间跨度转换为字符串,然后将该字符串与我不需要的一些奇数日期连接起来以创建“有效”日期,然后将其转换为本地时间,然后从中提取时间?

或者是否有一种更简单、更优雅的方式来使用 TimeSpan,或者只是 datetime 值的 Time 部分?

谢谢你的帮助。

附言仅将 UTCnow 时间转换为本地时间似乎很愚蠢,但我最终会从 db 表中获取此 UTC 时间值 - 类型 time(0)。我在上面发布的方法只是测试从数据库中获取该值然后在模型中设置该值后如何处理该值的一种更短的方法。

最佳答案

[object Object]您看到的是因为 TimeSpan 没有 JSON 表示,所以最简单的解决方案是使用通用格式来传递它,即毫秒。

public ActionResult GetTimeSpanInfo()
{
TimeSpanModel tsm= new TimeSpanModel ();
return Json(tsm.TotalMilliseconds.ToString());
}

并使用 Date 构造函数 Date(milliseconds) 在 javascript 中解析,如下所示:
$.ajax({
type: 'POST',
url: '@Url.Content("~/Controller/GetTimeSpanInfo")',
success: function (data) {
alert(data);
var dt = new Date(data);
alert(dt.toString());
}
});

关于json - 如何使用 json 和 javascript/jquery 正确处理数据库时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659445/

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