0

我有一个通过 ajax 检索事件日期(json 格式)的函数。我的函数应该将日期转换为人类友好的格式。一切正常,但并不完美。问题是:当服务器日期为“21/06/2013 22h00”时,此函数返回“22/06/2013 05h00”“26/07/2013 18h30”此函数返回“27/07/2013 01h30”

这是提前6个小时。

PS:我的国家和我的服务器所在的国家,正好相差6个小时。。

我必须在哪里放置 UTC 函数?我的功能有什么问题?谢谢

这是代码:

var jsonifyMyDate = function (jsonDate) {
           var parser = parseInt(jsonDate.substr(6));
           if (parser > 0 && !isNaN(parser)) {
               var newDate = new Date(parser),
               _date = newDate.getDate(),
               _month = newDate.getMonth() + 1,
               _year = newDate.getFullYear(),
               _hour = newDate.getHours(),
               _minute = newDate.getMinutes();
               var dateStr = (_date < 9 ? "0" : "") + _date;
               dateStr += "/" + (_month < 9 ? "0" : "") + _month;
               dateStr += "/" + _year;
               dateStr += " "+(_hour < 9 ? "0" : "") + _hour + "h";
               dateStr += (_minute < 9 ? "0" : "") + _minute;
               /* + "-" + newDate.getSeconds() + "-" + newDate.getMilliseconds() + "";*/
               return dateStr;
           } else return "";

更新:我可以在 ActionResult 中看到我的服务器端解析函数的问题......所以,当我使用 Asp.Net+MVC(C#) 时,如何让

return Json(datetime);

返回 UTC 毫秒而不是服务器的毫秒?

4

1 回答 1

0

Json 格式是基于 UTC 日期时间创建的。

从 ajax 调用获取日期时间后,您必须将此 UTC 日期时间转换为本地日期时区。

前任:

var date = new Date('6/29/2011 4:52:48 PM UTC');
date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"
于 2013-07-15T10:59:02.187 回答