admin 管理员组

文章数量: 1184232

谷歌浏览器时间解析错误,时间转换错误

背景

用户在谷歌浏览器中发起今天的请求,但是new date(),getFullYear,getMonth,getDate转换来的时间总是晚了几个小时
而且会出现,同样的浏览器,之前用着好好的,时间筛选的是没错的,但是后来就出问题,用户的本地时间和时区都没问题。
后来才知道是谷歌浏览器会自动升级,升级后的浏览器版本有时候会有时区的误差。

解决方法

1.临时快速解决问题,切换电脑的时区到任意的时区,再切换到自己想要的时区,这个时候浏览器对时间的解析就不存在问题。

2.代码层面 去切换时区。对时间的转换做一个统一的封装,以后只要关于时间的获取,都把时区的转换考虑进去,就不会出现这个问题了


```javascript
/**
 * 获取最近几天的日期 格式:2020-02-20
 */
export function getToday(AddDayCount, stamp) {
    AddDayCount = AddDayCount || 0
    var summer = new Date(2021, 0, 1).getTimezoneOffset()
    var winter = new Date(2021, 6, 1).getTimezoneOffset()
    var zone = summer > winter ? summer : winter // 处理夏令时问题
    var dd = new Date(window.timestamp + 1000 * (480 + zone) * 60); // 处理时区问题
    dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期
    var y = dd.getFullYear();
    var m = dd.getMonth() + 1; //获取当前月份的日期
    var d = dd.getDate();
    if (d.toString().length == 1) {
        d = '0' + d; //个位数补个0 ,如7 => 07
    }
    if (m.toString().length == 1) {
        m = '0' + m; //个位数补个0 ,如7 => 07
    }
    return y + "-" + m + "-" + d
}














本文标签: 错误 时间 浏览器