Json日期格式转换减去1天

时间:2015-01-06 12:18:09

标签: javascript jquery json date

我从JSON收到的日期格式如下: -

/Date(1412101800000)/

当我将其转换为dateformat时,我得到1天减去。

我使用以下代码: -

var dateFormat = new Date(parseInt(obj['DATEOFJOINING'].substr(6))).toISOString().substr(0, 10);

dateFormat results in 2014-09-30

来自Db的原始日期为2014-10-01

为什么会这样?如何获得完美约会?

3 个答案:

答案 0 :(得分:2)

这是一个时间戳。

new Date(parseInt('/Date(1412101800000)/'.substr(6)));

只需设置正确的时区。

var dateFormat = new Date(parseInt('/Date(1412101800000)/'.substr(6)));
dateFormat.setTime( dateFormat.getTime() + dateFormat.getTimezoneOffset()*60*1000  );

您所在时区的日期*:30/09/2014 19:30:00
洛杉矶的日期*:30/09/2014 11:30:00
柏林的日期*:30/09/2014 19:30:00
北京日期*:01/10/2014 01:30:00
纽约日期*:30/09/2014 13:30:00

例如

var dateFormat = new Date(parseInt('/Date(1412101800000)/'.substr(6)));
    dateFormat.setTime( dateFormat.getTime() + dateFormat.getTimezoneOffset()*(-10*100000));

日期{Wed Oct 01 2014 12:10:00 GMT + 0100(BST)}

答案 1 :(得分:0)

这是由于客户的时区。
使用Date.prototype.getTimezoneOffset获取偏移量:

var date = new Date(1412101800000);
var gmtDate = new Date(date.valueOf() + date.getTimezoneOffset() * 60 * 1000);

答案 2 :(得分:0)

正如@madforstrength评论的那样,它使用GMT的偏移量。 要在几分钟内获得偏移量,您可以尝试:

var d = new Date()
var n = d.getTimezoneOffset();

并根据当地时间进行调整。

您可以看到引用here