给出错误日期的JSON.stringify(objExtraParam)

时间:2014-09-25 13:33:15

标签: javascript json

我有一个javascript对象如下。

var obj = { pageSize:"25",asOfDate:"Thu Sep 25 00:00:00 UTC+0530 2014"};

当我将其字符串化时,

var d = JSON.stringify(obj);

它给我结果

{"pageSize":"25","asOfDate":"2014-09-24T18:30:00Z"}

提供日期2014-09-24的原因可能是2014-09-25

编辑:

我的部署服务器位于美国(东部时间UTC -5:00)。当我从我在印度的本地计算机上检查该网站时,它给我的日期为24 Sept 2014

3 个答案:

答案 0 :(得分:3)

UTC+0530声明UTC时间偏移量。似乎5:30位于India or Sri Lanka area附近。

"2014-09-24T18:30:00Z"与两种不同格式的"Thu Sep 25 00:00:00 UTC+0530 2014"相同。第一种格式的Z解析为UTC(GMT)时间,在本例中为-5:30。因此18:3024:00 - 5:30

所以,如果你是stringify - 在负偏移的时区(比如在United States UTC−08:00中)那么它可以在解析时将日期推回一天。

我认为这就是你所看到的。

相关SO问题:JSON Stringify changes time of date because of UTC

答案 1 :(得分:1)

试试这个

public JsonResult GetLOVDivCount()
{
    return Json(SearchRep.GetDivCount(), JsonRequestBehavior.AllowGet);
}

答案 2 :(得分:0)

在JSON中传递日期没有标准格式,因此JSON.stringify只是调用默认的date.prototype.toString()方法,并且考虑了时区。

您需要确保将日期转换为符合您特定要求的字符串,并仅转换为JSON格式。