用js实现时间减去前1小时、7天、1月、1年

场景描述:
spring boot中在查询mongdb时,出现时间相差8小时的情况怎么解决呢,找了N多种办法,在配置文件中配置时区,引入fastjson等,这我这都没有生效,而node再调用时,又出现了,另外的幺蛾子,发现时间与真实日期相差22小时,甚坑。
后来想一下的做法是

在每个涉及到时间的方法添加一个处理的逻辑–>不可取,涉及到的地方太多
写一个公共方法在后台用时处理–>不可取,依然是设计地方太多
在前台展示时修改–>可取,亮哥在前台调用时是使用的公共方法,只要在前台展示时,减去22小时即可。

项目中的处理

    var apiDate=new Date(time);
    //减去22小时,处理时间差
    dateHours = apiDate.setHours(apiDate.getHours() - 22)
    var date=new Date(dateHours)

通用的减去多少对时间处理

var sdtime1 = new Date('2018-03-22 16:14:55')
var sdtime2 = sdtime1.setHours(sdtime1.getHours() -1)//小时
var sdtime3=new Date().setDate((new Date().getDate()-7))//7天
var sdtime4=new Date().setMonth((new Date().getMonth()-1))//一个月
var sdtime5=new Date().setFullYear((new Date().getFullYear()-1))//一年
console.log(new Date(sdtime2).Format("yyyy-MM-dd HH:mm:ss"));

设想
是不是可以使用过滤器,或者拦截器是不是会更好,在xml中添加一个配置,或者添加一个注解,我觉得可以研究一下
参考:https://www.cnblogs.com/amanda-man/p/8625401.html

你可能感兴趣的:(java,前端,后端开发)