node.js无法解析ISOString日期?

时间:2014-07-14 02:25:21

标签: javascript node.js date

我们使用新的Date()。toISOString()。

以ISO格式存储每个日期数据

我尝试将此ISO格式的日期转换为node.js中的Date对象,但我收到无效日期响应。

日期字符串为isoDate = 2014-07-09T14:00:00.000Z 我在console.logDate.parse(isoDate);new Date(isoDate);做了NaN 但每个都返回Invalid Date和{{1}}。

我检查了日期字符串是否包含任何不可见的错误字符,但它们很好,可以在浏览器控制台上转换。

这是否意味着我需要手动转换字符串并使用解析后的字符串创建Date对象?

感谢阅读。

2 个答案:

答案 0 :(得分:2)

尝试使用moment库。它具有许多与日期一起使用的功能,并且可以在客户端和服务器端轻松使用。调用moment("2014-07-09T14:00:00.000Z").toDate()会使用此库将您的字符串转换为日期JavaScript对象。

答案 1 :(得分:0)

我发布这个答案,以防有人像我一样经历这个。

我发生了什么事,我以为我是从浏览器发送ISOString

{
  startDate: date.startDate
}

实际上我发送了一个时刻实例作为参数

当我检查网络检查员时,我发现正在发送的数据是ISO格式 - 是的,但它用双引号括起来“”

{
  startDate: "2016-12-31T16:00:00.000Z"
}

它不应该用双qoutes括起来,应该看起来像这样

{
  startDate: 2016-12-31T16:00:00.000Z
}

对我有用的是将时刻解析为iso string

{
  startDate: date.startDate.toISOString()
}