Node.js日期参数

Node.js date parameters

本文关键字:参数 日期 js Node      更新时间:2023-09-26

我正在创建一个node.js端点,它接受开始日期/时间和结束日期/时间作为参数。我一直把它们当作一串传过去

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

在我的服务级别:

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);
});

然而,强制转换总是失败,所以我最终为startTime和endTime值指定了1970年的日期。显而易见的解决方案是使用UTC格式,但正确的方法是什么?

按照Phil的建议使用ISO 8601格式,或者简单地以毫秒形式传递日期(自1970年以来)。

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

要获得ISO 8601格式的当前日期,您可以执行以下操作:

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

tl;dr版本:这就是body对象的外观。为了进行演示,我为startTime使用了毫秒,为endTime使用了ISO8601字符串。两者都有效。

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