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