在Node.js中添加分钟到javascript日期

时间:2016-03-21 03:57:13

标签: javascript node.js date datetime time

我在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分钟。

2 个答案:

答案 0 :(得分:3)

bt_time是bt_time + i类型。 bt_time.toString() + i表示new Date(bt_time.getTime() + 60*1000*5).toString(); // or bt_time.setMinutes(bt_time.getMinutes() + 5);

正确

moment().add(5, 'minutes').toDate();

我建议在nodejs中使用http://plnkr.co/edit/WgUDJQNL0YCKWUfXMFsr?p=preview

$('.slider').slick({
      slidesToShow: 1,
      slidesToScroll: 1,
      arrows: true,
      fade: true,
      autoplay: true,
      asNavFor: '.slider-nav'
     });


     $('.slider-nav').slick({
      slidesToShow: 4,
      slidesToScroll: 1,
      asNavFor: '.slider',
      dots: true,
      focusOnSelect: true,
      vertical:true
     });

答案 1 :(得分:2)

回复:

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
相关问题