首先,上代码
var diffDate = function(date, diff) {
return new Date(
Date.UTC(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
date.getUTCHours(),
date.getUTCMinutes(),
date.getUTCSeconds()
) +
diff
);
};
其次,上原理
1 将 Date() 对象转换为UTC标准时间对应的总毫秒数
2 把这个毫秒数加上作差值的毫秒数(例如:减一天就是 -24*60*60*1000)
3 把结果毫秒数转换为 Date()对象
4 返回结果
5 结束
后记:
这两天做项目要用到减时间,减一天,考虑了不能直接减,还要考虑是一号还要减月,一月还要减年,闰年,闰月等等。于是放弃了自我研发,开始百度【捂脸】。结果这一搜代码都很复杂。全拿字符串操作。
转念一想,这么常用的操作js应该提供了方法呀! 于是开始看文档 w3school ,上边把Date() 看了一遍,并没有。
但是,我发现,有个Date.UTC 。
啪!有主意了
花了一些时间,搞定了。
所以,没事看看文档还是有惊喜的呢!
大家拿去用,哈哈哈