【发布时间】:2016-03-08 20:19:24
【问题描述】:
当我在 javascript 中从字符串创建新数据时遇到了一个非常奇怪的错误。
我的字符串看起来像这样2015-12-04T01:42:13
代码如下
date = new Date(2015-12-04T01:42:13)
console.log(date);
console.log 的结果是2015-12-04T02:42:13,但为什么呢?我现在 UTC 在我的时区是 +1。但我将值从数据库中取出,并将其与实际日期进行比较,以查看已经过去了多少时间。我不希望它被纠正,因为它已经在这个时区获得了。为什么会这样?逻辑是什么?
如何从字符串创建确切的日期?
这实际上似乎是 node.js 的一个问题。我不能到处复制它。
【问题讨论】:
-
我的猜测是,如果没有提供偏移量,ISO 8601 格式假定为 UTC
-
它不是重复的。我的输入是从数据库中获取的日期字符串。
-
那么日期字符串应该在哪个时区呢? JavaScript 将您的字符串解释为 UTC,因此如果您只想将其与另一个日期进行比较,也请使用 UTC
-
"已经使用 UTC +1" --- DB 和 JS 怎么知道呢?如果它是
+01:00时区 - 它应该被表示。 -
您当前的字符串在
UTC中指定时间,因此它被解释为这样。如果您希望在考虑特定时区的情况下对其进行解释 - 明确地将其放入该日期时间字符串。
标签: javascript node.js timestamp