"getDate().toJSON()"失去了一天

jcu*_*nod 6 javascript date angularjs momentjs pikaday

我正在使用pikaday日期选择器插件(通过角度指令momentjs)并将值发送到服务器.转换为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
Run Code Online (Sandbox Code Playgroud)

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

Pie*_*ler 5

这都是关于你约会日期的格式.

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

Thu Apr 30 2015 00:00:00 GMT+0200 (SAST)
Run Code Online (Sandbox Code Playgroud)

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


ilt*_*ter 3

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

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

moment('2012 juillet', 'YYYY MMM', 'fr');
moment('2012 July',    'YYYY MMM', 'en');
Run Code Online (Sandbox Code Playgroud)

您可以使用 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);
Run Code Online (Sandbox Code Playgroud)