javascript - GET 方法中日期参数的 "Invalid Date"错误

标签 javascript node.js

我在 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/

相关文章:

javascript - react .js : Identifying different inputs with one onChange handler

node.js - 有没有办法在 Heroku 上运行非 Web Node.js 应用程序?

javascript - 这个 gulp 命令会等待依赖任务吗?

node.js - PassportJS 获取 Facebook 用户位置

javascript - 将数组转换为键值对

javascript - 对象的隐式强制

javascript - 为什么即使变量声明为全局,Javascript 代码也会打印 'undefined'?

node.js - Elastic Beanstalk for NodeJS 上的 SELF_SIGNED_CERT_IN_CHAIN 错误

node.js - 从node_modules编译SASS和@import

javascript - 不使用 jQuery 查找滚动条的垂直位置