我今天发现一个奇怪的问题,下面这个网址(是个时间戳转换的页面):
https://www.phpernote.com/web_tools/unix-timestamp.html
比如这个时间戳:1686153600
在 360 浏览器下和chrome下格式化后显示的日期竟然不一样,360下是:2023-06-08 00:00:00
,而chrome下竟然是:2023-06-07 16:00:00
,头一次碰到这种问题,我知道后端会经常有这种问题,没想到前段js也有这种问题,麻烦问下大佬,我该如何写js代码才能保证chrome下是正确的呢?谢谢。
360浏览器下是正确的。
我用的是深度deepin系统。
下面是一点点的思考:
这种东西是不是客户端不能正确处理?即使我强行把他解决了,如果一个人在美国在这个页面格式化这个时间戳,得到的结果是不是还是不是2023-06-08 00:00:00
,我期望的结果是在地球上任何地方使用这个页面格式化这个时间戳都是2023-06-08 00:00:00
,看来必须使用后端来返回结果呢吗?
根据你的提问,感觉 你对 时间戳,UTC时间,GMT 时间,本地时间,时区 这些概念并不清楚。
下面是大概的粗略描述一下:
具体到你的问题:
1 时间戳
1686153600
2 时间戳 的定义里:
和时区无关的,无论在地球上的那个角落,同一时刻,UNIX时间戳都是一样的
3 Chrome浏览器下
2023-06-07 16:00:00
是 UTC时间格式的4 360浏览器下
2023-06-08 00:00:00
是 本地时间格式5 JS Date 格式化的两套函数
6 想要任意浏览器都格式化成同样的显示时间