【发布时间】:2020-05-31 22:25:00
【问题描述】:
我正在尝试使用毫秒为当前时间添加五分钟,但我很困惑为什么加法和减法会给出如此不同的结果:
const now = new Date();
const gimmeFive = now + 300000;
const takeFive = now - 300000;
分别给:
"Sun May 31 2020 23:06:48 GMT+0100 (British Summer Time)300000"
1590962508207
为什么减法有效,加法无效?如何添加时间?
为每个堆栈溢出提示添加了说明: 虽然此处的 Q 与 Add 10 seconds to a Date 重叠,但它在试图理解为什么加法和减法运算符显示不同的行为时有所不同(如 RobG 所解释的) ,为此,非常感谢!)
【问题讨论】:
-
首先将其强制转换为数字或使用 .getTime() 或 Date.now。
+带有 Date 将首先尝试强制转换为字符串。-不是字符串的运算符,因此它会尝试强制编号。它是转换规则的一部分。 -
这能回答你的问题吗? Add 10 seconds to a Date
-
@Mina 至于“为什么”,因为这就是语言规范的设计方式。您可以遵循转换路径:ecma-international.org/ecma-262/6.0/#sec-addition-operator-plus 基本上是 ToPrimitive -> ToString 首先尝试。减法:ecma-international.org/ecma-262/6.0/…
标签: javascript date time