我从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
为什么会这样?如何获得完美约会?
答案 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。