我在 GET 方法中传递一个日期字符串作为查询参数。该字符串在使用 new Date(date)
方法进行硬编码和转换时工作正常。但是,如果我尝试对查询参数执行相同操作,则会抛出“无效日期”错误。
日期字符串的格式是 ISO8601。我的查询端点是:
http://localhost:3000/api/v1/range?startDate=%222018-10-11T12%3A55%3A37.000Z%22
日期字符串是 "2018-10-11T12:55:37.000Z"
Node 片段:
exports.searchItems = async (req, res) => {
try {
let startDate = req.swagger.params.startDate.value;
validCheck = new Date(startDate)
webUtils.sendResponse(res, 200, validCheck);
} catch (err) {
webUtils.errorHandler(res, err);
}
};
最佳答案
根据我的问题评论,我使用代码片段 require('url').parse('/range?startDate=%222018-10-11T12%3A55%3A37.000Z 再次检查了 Node 8 %22', true)
并且正在使用双引号作为字符串的一部分解析查询。 IE。结果对象的查询部分是:
{..., query: { startDate: '"2018-10-11T12:55:37.000Z"' }, ... }
需要删除引号以创建有效的日期字符串以在 Date
构造函数中使用。
关于javascript - GET 方法中日期参数的 "Invalid Date"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53524014/