JS日期时间加减实现

时间:2024-05-20 20:04:26

首先,上代码

 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 。

  啪!有主意了

  花了一些时间,搞定了。

  所以,没事看看文档还是有惊喜的呢!

  大家拿去用,哈哈哈