【问题标题】:Json date format conversion subtracting 1 dayJson日期格式转换减去1天
【发布时间】:2015-01-06 12:18:08
【问题描述】:

我从 JSON 收到的日期格式是这样的:-

/Date(1412101800000)/

当我将其转换为日期格式时,我得到 1 天的减号。

我正在使用以下代码:-

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

dateFormat results in 2014-09-30

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

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

【问题讨论】:

  • 可能是因为服务器和客户端PC的时区不同。

标签: javascript jquery json date


【解决方案1】:

这是一个时间戳。

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

只需设置一个正确的时区。

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

您所在时区的日期*:2014 年 9 月 30 日 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));

日期 {2014 年 10 月 1 日星期三 12:10:00 GMT+0100 (BST)}

【讨论】:

  • 我试过你的代码...仍然显示日期减去 1 天。!
  • 我正在使用角度 ng-grid...当我编辑日期字段时...它显示 Tue Sep 30 2014 18:30:00 GMT+0530 (India Standard Time)
  • @Anup 您需要输入您的时区。只需替换值 60*100
【解决方案2】:

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

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

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

你可以看到参考here

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 没有运气...显示日期减去 1 天..!
    猜你喜欢
    • 2021-12-31
    • 2020-01-14
    • 2015-06-21
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    相关资源
    最近更新 更多