" GETDATE()的toJSON()"失去一天

时间:2015-04-29 14:59:00

标签: javascript angularjs date momentjs pikaday

我使用pikaday日期选择器插件(通过angular directivemomentjs)并将值发送到服务器。转换为json似乎失去了一天,但是:

var d = myPikaObject.getDate();
console.log(d);              // Thu Apr 30 2015 00:00:00 GMT+0200 (SAST)
console.log(d.toJSON());     // 2015-04-29T22:00:00.000Z

我认为这是一个偶然的问题,但我不知道出了什么问题。

2 个答案:

答案 0 :(得分:5)

这完全取决于您约会的格式。

当你打印d时,你有这个:

Thu Apr 30 2015 00:00:00 GMT+0200 (SAST)

这是GMT +2,所以当你打印d.ToJson()时你失去了2个小时。所以你是前一天晚上22点

答案 1 :(得分:3)

为了让您已经有时间 momentjs ,您可以尝试使用moment.utc()方法。文档说:

  

从版本2.0.0开始,可以将区域设置键作为第三个参数传递   到moment()和moment.utc()

moment('2012 juillet', 'YYYY MMM', 'fr');
moment('2012 July',    'YYYY MMM', 'en');

使用utc()方法可以做更多事情。

moment.utc();
moment.utc(Number);
moment.utc(Number[]);
moment.utc(String);
moment.utc(String, String);
moment.utc(String, String[]);
moment.utc(String, String, String);
moment.utc(Moment);
moment.utc(Date);