我想在日期时间增加1.5小时:
var date = new Date('08/18/2016 19:00:00');
date.setHours(date.getHours() + 1.5);
预期结果:
date = 08/18/2016 20:30:00;
但我有:
date = 08/18/2016 20:00:00;
为什么以及如何做到这一点?
答案 0 :(得分:4)
为什么?
因为setHours
不接受小数值。如果您follow through the spec,您会发现它通过抽象ToInteger
操作运行小时值,该操作会切断.5
。
怎么做?
setHours
实际上接受分钟(以及秒等)作为附加参数:
date.setHours(date.getHours() + 1, date.getMinutes() + 30);
或者,您可以单独执行此操作:
date.setHours(date.getHours() + 1);
date.setMinutes(date.getMinutes() + 30);
或者以毫秒为单位:
date.setTime(date.getTime() + (1.5 * 60 * 60 * 1000));