Node.jsdate参数

我正在创build一个接受开始date/时间和结束date/时间作为参数的node.js端点。 我一直把它们作为一个string,即:

var body = { relatedObjectId: "561ee6bbe4b0f25b4aead5c8", startTime : "11/13/2015 03:00:00PM", endTime: "11/13/2015 03:30:00PM" }; 

并在我的服务class:

 var timeTicket = new TimeTicket(); timeTicket.tutorId = tutorId; timeTicket.startTime = new Date(startTime); timeTicket.endTime = new Date(endTime); timeTicket.save(function(err, timeTicket){ if(err){ return next(err, null); } return next(null, timeTicket); }); 

然而,演员总是失败,所以我最终在1970年的date为startTime和endTime值。 看起来显而易见的解决scheme是使用UTC格式,但是正确的方法是什么?

按照Phil的build议使用ISO 8601格式,或者简单地将date传递为毫秒(1970年以后)。

例如, new Date(1447378736842)new Date("2015-11-13T01:38:56.842Z")

要获得ISO 8601格式的当前date,你可以这样做:

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

tl; dr版本:这是你的body对象应该看起来像。 为了演示目的,我使用了毫秒作为startTimeendTime的ISO 8601string。 两者都是有效的。

 var body = { relatedObjectId: "561ee6bbe4b0f25b4aead5c8", startTime : 1447378736842, endTime: "2015-11-13T01:38:56.842Z" };