我在 Node.js 中的 javascript 中向日期添加分钟时遇到问题。我有一个日期对象,bt_time = new Date()
bt_time.toString()
"Mon Mar 07 2016 03:30:10 GMT+0000 (UTC)"
以下操作尝试添加 5 分钟以给出以下结果
bt_time + (60*1000*5)
"Mon Mar 07 2016 03:30:10 GMT+0000 (UTC)300000"
new Date(bt_time + (60*1000*5)).toString()
"Mon Mar 07 2016 03:30:10 GMT+0000 (UTC)"
new Date(bt_time) + (60*1000*5)
"Mon Mar 07 2016 03:30:10 GMT+0000 (UTC)300000"
+ (60*1000*5) 似乎只是在日期字符串的末尾添加了 300000,而不是添加到时间中。当我尝试减法时,我没有遇到同样的问题。
我需要日期算术能够迭代几天的时间跨度,一次 5 分钟。
最佳答案
回复:
I don't have the same issue when I attempt subtraction
因为subtraction operator -
强制其操作数为 Number,因此:
bt_time - (60*1000*5)
实际上是:
bt_time.getTime() - 300000
这将创建一个数字(表示自 ECMAScript 纪元以来的毫秒数),其值比 bt_time
的时间值小 300,000。
已经回答,但为了完整性:
但是,addition operator +
已重载,因此:
bt_time + (60*1000*5)
脚本引擎必须确定它是否意味着 addition, concatenation或强制转换为数字 ( + unary operator )。默认情况下,Date 对象强制转换为字符串,因此 +
充当连接运算符,正如 Daishi Nakajima 所说,实际上是:
bt_time.toString() + 300000
关于javascript - 在 Node.js 中向 javascript 日期添加分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122895/