运用Javascript实现时间重置、进行时间加减计算

    近期参与的项目中涉及到时间计算的问题,就是首先获取到数据库中最新数据的日期,并根据这个时间去获取一个月前、3月前、一年前等时间段的数据,并且要显示每个时间段的最开始的时间。关于时间的处理,对于后台开发的攻城师们来说可能是小case中的小case,代码量可能也是一两行就搞定,然前端童鞋要用js去处理相对来说可能会比较麻烦,但是根据需求,有时候无可避免的必须要去进行处理。这里记录的是个人觉得相对来说比较简便的方法,代码如下所示:这里预设获取到最新数据的日期时间为:2016年12月31日。

1、首先是获取一个月前的时间的代码:


2、下面的是获取三个月前的时间的代码:


    代码中的date、date1是个时间对象,首先通过set的时间方法把时间设置为获取的最新数据的时间。设置时间后通过get时间方法获取到设置的时间的年月日,对应代码中的oldYear、oldMonth、oldDay。注意:代码中的date.setMonth(12-1),里面的参数12是表示我们获取的最新数据的时间月份是12月,减1时因为国际时间11代表我们北京时间12月份,所以要减1。然后设置一个月前、三个月前的日期,通过date.setMonth(oldMonth-1)即可计算一个月前、三个月前的日期。设置后必须重新通过get方法获取设置后的时间(注意月份需要再加上1方是我们的北京时间),即能获取到一个月前、三个月前的时间。上面代码的运行效果如下:


    这里说下date.setMonth(oldMonth-1)的时间计算。这里用月份减1,实际上是减去上一个月的天数的时间。比如说最新时间是2015年3月31日,则实际通过月份减1后再获取到的一个月前的日期为2015年3月3日。这是因为2015年的2月份只有28天,则这个时间计算是减去上一个月的天数28天,则31-28=3,所以返回的时间是2015年3月3日。当然这里你可以用date.setDate(oldDay-30)的方法设死减去30天,则返回的时间是2015年3月1日。

    总之,关于时间加减,是用setMonth方法进行处理还是用setDate方法进行处理,全凭个人决定。对时间进行处理时需要注意的月份是2月,处理时要注意下,多测试下2月份的时间设置;还有要注意的是有无31号的月份的时间。只要理解了时间计算的原理,运用起来就不是问题啦。大笑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值