JS快速获取当前时间减一小时、一天及日期格式处理

时间:2021-12-30 17:08:58

背景

今天在做项目的时候用到了element-ui的DateTimePicker组件,官方给的例子中是传入固定参数从而确定默认时间,而我们项目的需求希望默认以(当前时间前一小时-当前时间)为默认值,并以此去请求后台获取数据。获取到了时间范围后,我请求后台发现并没有拿到我想要的结果,去浏览器中查看请求的参数,发现是一个带有TZ的字符串,这也就引发了获取到的日期格式处理的问题。

解决方案

  • 快速获取当前时间前一小时-当前时间
//默认日期时间
dataPickerValue: [new Date(new Date().getTime() - 1 * 60 * 60 * 1000), new Date()],

用new Date()取到当前时间的值,再使用getTime()方法获取时间的毫秒值后进行计算,最终将计算的结果传入new Date()中就能得到当前时间了。我这里获取的是当前前一小时,进行不同的计算是可以获取当前时间前后任意时间的。

  • 格式处理
    JS快速获取当前时间减一小时、一天及日期格式处理
    当我发现向后台请求时的日期并不像我在DateTimePicker组件中看到的那样,我就查看了一下DateTimePicker的值,才知道原来是组件内部对时间做了处理之后才展示成页面那样的,而我在请求后台时就需要自己去处理这个时间了。
    最后在使用了http://blog.csdn.net/hj7jay/article/details/51433745博客中处理中国标准时间的方法解决了这个问题。有其他的需求的朋友也可以参考上述博客中的其他方法。
let param = {
  beginTime: new Date(+new Date(that.dataPickerValue[0])+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,''),
  endTime: new Date(+new Date(that.dataPickerValue[1])+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,''),
  pageNo: 1,
  pageSize: 20
}