date和hour都是后台动态传给我的,date的格式是这样的:2017-09-15T11:08:13.681648,hour格式是这样:2或者0.5,我现在要实现date和hour相加后,把结果显示。请大神指点如何实现date和hour的相加运算!
date和hour都是后台动态传给我的,date的格式是这样的:2017-09-15T11:08:13.681648,hour格式是这样:2或者0.5,我现在要实现date和hour相加后,把结果显示。请大神指点如何实现date和hour的相加运算!
function datePlus (date, hour) {
return new Date(new Date(date).valueOf() + hour * 60 * 60 * 1000)
}
datePlus('2017-09-15T11:08:13.681648', 2)
// => Fri Sep 15 2017 13:08:13 GMT+0800 (CST)
var date = new Date('2017-09-15T11:08:13.681648');
var seconds = 2 * 60 * 60; // 将小时转换为秒
date.setSeconds(date.getSeconds() + seconds);
console.log(date);
Date对象的setHours, setMinutes, setSeconds方法都可以设置超过其本身的数字,如
var date = new Date();
date.setHours(25);
date.setMinutes(61);
date.setSeconds(61);
// 超过的时间会自动进位,所以可以直接使用Date对象进行加减运算
date.setHours(date.getHours() + 1); // 当前时间加1小时
date.setHours(date.getHours() - 1); // 当前时间减1小时
date.setHours(date.getHours() + 1.9); // 小数会自动取整,即只增加1个小时
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
转化成时间戳进行计算,可以避免谷歌和firefox的时区兼容性问题:
var stringTime = '2017-09-15T11:08:13.681648';
var timestamp2 = Date.parse(new Date(stringTime));
timestamp2 = timestamp2 / 1000;
var seconds = 2*3600;
timestamp=timestamp2+seconds
console.log(stringTime + "的时间戳为:" + timestamp);
var newDate = new Date();
newDate.setTime(timestamp * 1000);
console.log(newDate.toGMTString());