js怎么将服务器GMT时间转为中国标准时间
最近遇到一个需求:
antd的时间组件有个默认的时间,我们是前端自己根据电脑的系统时间 new Date()来定的,new Date()的时间就是系统的时间。但是当测试人员搞事情,把系统时间改了时区,电脑日期改变,那antd组件的默认时间也会跟着变,所以这个时候就不对了,测试说应该都根据中国标准时间来默认显示的
所以前端再想直接new Date()就不对了,我找了半天,找到下面这个解决方法:
既然不能根据系统时间来设置,那根据服务器的时间是可以的吧,我先获取服务器的时间
//这里拿获取百度的地址的时间打比方 const convertToCST= async()=>{ const dateVal = await axios.head('https://www.baidu.com?_='+new Date().getTime()).then(res=>{ //res就是获取到的格林威治时间:GMT格式的 // 示例:假设服务器时间是2023-04-01 12:00:00 GMT let serverTime = new Date(res.header.date);//这里把获取到的GMT时间转换成Date对象; if(res.status===200){ //设置date对象,并直接设置GMT时间 let date = new Date(serverTime.getTime()+serverTime.getTimezoneOffset()*6000); date.setTime(date.getTime()+8*60*60*1000);//这里是将new Date()的时区改为Asia时区 //返回date,是 转换后的 中国标准时间 return date } }) }
最后调用这个公共函数convertToCST就可以了
convertToCST().then(res=>{ //Thu Mar 14 2024 17:59:20 GMT+0800 (中国标准时间) console.log(res)//这个res就是获取到的当前服务器的中国标准时间了,可以对这个格式进行具体格式转化,得到自己想要的格式 })
点个赞吧
分类:
JS
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库