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
对象应该看起来像。 为了演示目的,我使用了毫秒作为startTime
和endTime
的ISO 8601string。 两者都是有效的。
var body = { relatedObjectId: "561ee6bbe4b0f25b4aead5c8", startTime : 1447378736842, endTime: "2015-11-13T01:38:56.842Z" };