前端---js 时间的国际化时间戳处理
//1 获取相对于0时区的当地时区(默认得到的是分钟,可能是负数;北京市东八+8 美国华盛顿为西五-5),中国比美国快13小时
//js默认转换的时候自带时区,只要数据库存的是时间戳,显示的时候不用刻意转换
时间国际化处理注意
1 数据库存时间戳
2 原则,要求在各个不同国家当地录入时间戳数据,当地的用户前端查看时间显示和后端时间校验都是对的上; 如果是 在一个国家录入数据,其他不同的国家用户查看,由于用户在不同时区,默认Date转换时间戳后显示的日期是不同的
(问题1 可能录入的时间比前端时间的时间要晚,但是当地用户显示时间已到了,进去学习获取接口数据却被拦截 告知’没到时间‘ 2 所以前端需要通过getTimesZone获取用户所在地的时区,传递给后端,后端校验也带上时区进行判断)
//入库如果是存 年月日,需要获取当前 对应的国外时间处理
getTimesByZone() {
//得到本地时间
var d = new Date();
//得到1970年一月一日到现在的秒数
var local = d.getTime();
//本地时间与GMT时间的时间偏移差
var offset = d.getTimezoneOffset() * 60000;
//获取本地时区,判断如果是负的则相加得到GMC时间,正的则相减
var localUtc = new Date().getTimezoneOffset() / 60;
//得到现在的格林尼治时间
var utcTime;
if (localUtc > 0) {
utcTime = parseInt(local - offset);
} else {
utcTime = parseInt(local + offset);
}
//得到时区的绝对值
var localTime = utcTime + 3600000 * Math.abs(localUtc);
let date = new Date(localTime);
console.log("根据本地时间得知" + localUtc + "时区的时间是 " + date.toLocaleString());
console.log("系统默认展示时间方式是:" + localTime)
return localTime;
},
总结:1 只要数据库里面存储的是时间戳,那么显示的时候,不用特殊转换,date函数会默认根据系统的时区转成当地时间。
2 一般只处理当前时间的对应的国际化时间。
3 类似的还可以参考另外一篇文章:
https://blog.csdn.net/qq_38331169/article/details/124223653
它的原则是 :
对于所有API请求时间(比如表单时间录入),在同一时间点切换各个时区的录入数据时候应该表现成同样的值
对于所有API返回时间(比如返回的列表 时间显示),它们都应该被格式化成正确的本地时间(当地)
产品思维的PM程序员~
工作1-3年,基础知识,多看书。多跟着别人做项目,学习经验。 工作3-5年,新知识,高级知识,自己独立做项目,总结经验。尝试不同的语言。 工作5-8年,工作职位,要从设计,管理方面要求自己,可以尝试走管理路线(项目经理或cto)。 工作10年及以上, 自己做些项目,产品,尝试为创业做准备。 上大学和不上大学区别很大,上品牌大学和普通大学区别也很大,后天的努力最大。 ---无论它是在遥远的远方,还是在出发的地方、哪里有希望哪里就是我们的方向;终点、只不过是梦想起飞的地方。
工作1-3年,基础知识,多看书。多跟着别人做项目,学习经验。 工作3-5年,新知识,高级知识,自己独立做项目,总结经验。尝试不同的语言。 工作5-8年,工作职位,要从设计,管理方面要求自己,可以尝试走管理路线(项目经理或cto)。 工作10年及以上, 自己做些项目,产品,尝试为创业做准备。 上大学和不上大学区别很大,上品牌大学和普通大学区别也很大,后天的努力最大。 ---无论它是在遥远的远方,还是在出发的地方、哪里有希望哪里就是我们的方向;终点、只不过是梦想起飞的地方。
顶
收藏
关注
评论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了