搜:
js date sub hour
参考:
javascript – How to subtract 2 hours from user’s local time? – Stack Overflow
How do I subtract minutes from a date in javascript? – Stack Overflow
datetime – Adding hours to Javascript Date object? – Stack Overflow
去试试
let curAlarmDate = timestampToDate(current_date); console.log(`curAlarmDate=${curAlarmDate}`); let tmpPrevDate = curAlarmDate; let tmpNextDate = curAlarmDate; let preFiveHoursDate = tmpPrevDate.setHours(tmpPrevDate.getHours() – 5); let nexSevenHoursDate = tmpNextDate.setHours(tmpPrevDate.getHours() + 7); console.log(`preFiveHoursDate=${preFiveHoursDate},nexSevenHoursDate=${nexSevenHoursDate}`); |
另外,再去把date转换为时间戳。
对于上述的内容,不够好,没有集成到Date对象中,自带此功能。
【总结】
最后改为:
// 对Date的扩展,返回之前或之后的多少个小时的时间 // 例子: // (new Date()).prevNextHours(5) / (new Date()).prevNextHours(-7) // ==> // current date [Tue Jun 06 2017 08:00:00 GMT+0800 (CST)] + [7] hours -> [Tue Jun 06 2017 15:00:00 GMT+0800 (CST)] Date.prototype.prevNextHours = function (hoursNumber) { console.log(`Date prevNextHours: this=${this}, hoursNumber=${hoursNumber}`); // Note: here only got date pointer(reference) not date value, so later setHours will change this !!! // let tmpDate = this; let tmpDate = new Date(this); let changedDateTimestamp = tmpDate.setHours(tmpDate.getHours() + hoursNumber); console.log(`changedDateTimestamp=${changedDateTimestamp}`); let changedDate = new Date(changedDateTimestamp); console.log(`current date [${this}] + [${hoursNumber}] hours -> [${changedDate}]`); return changedDate; }; |
调用:
let curAlarmDate = timestampToDate(current_date); console.log(`current_date=${current_date} -> curAlarmDate=${curAlarmDate}`); // let tmpPrevDate = curAlarmDate; // let tmpNextDate = curAlarmDate; // let preFiveHoursDate = tmpPrevDate.setHours(tmpPrevDate.getHours() – 5); // let nexSevenHoursDate = tmpNextDate.setHours(tmpPrevDate.getHours() + 7); let preFiveHoursDate = curAlarmDate.prevNextHours(-5); let nexSevenHoursDate = curAlarmDate.prevNextHours(+7); console.log(`preFiveHoursDate=${preFiveHoursDate},nexSevenHoursDate=${nexSevenHoursDate}`); |
效果:
Date prevNextHours: this=Tue Jun 06 2017 08:00:00 GMT+0800 (CST), hoursNumber=7 VM10267:65 changedDateTimestamp=1496732400000 VM10267:68 current date [Tue Jun 06 2017 08:00:00 GMT+0800 (CST)] + [7] hours -> [Tue Jun 06 2017 15:00:00 GMT+0800 (CST)] index.js?7def:469 preFiveHoursDate=Tue Jun 06 2017 03:00:00 GMT+0800 (CST),nexSevenHoursDate=Tue Jun 06 2017 15:00:00 GMT+0800 (CST) |
转载请注明:在路上 » 【已解决】JS中获取当前时间之前或之后几个小时的时间