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
}
版权声明:本文标题:谷歌浏览器时间解析错误,时间转换错误 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1766502415a3464453.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论