Skip to content

Commit

Permalink
时区
Browse files Browse the repository at this point in the history
  • Loading branch information
realgeoffrey committed Aug 28, 2024
1 parent 37cdb5f commit e79764b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion 网站前端/前端内容/标准库文档.md
Original file line number Diff line number Diff line change
Expand Up @@ -1433,7 +1433,7 @@ JS内部,字符以UCS-2(UTF-16的子级)的格式储存。UTF-16结合了
> - 额外产生问题(feature):(若不做额外处理、直接`new Date(传参)`,则)不同时区看到的时间不同(因为时间戳相同,但展示的时区不同)
>- 「在A时区存储时间,在A或其他时区展示,展示的是同一个时间刻度」的解决方案:
>
> 1. 方案一:不包含时区的时间字符串
> 1. 方案一:不包含时区的时间字符串(不能也不需要进行偏移,表示某个固定时区(如:UTC+0或服务端时区)的时间刻度)
> 2. 方案二:客户端存时间戳要偏移时区到某个固定时区(如:UTC+0或服务端时区)、取出的时间戳也要逆向偏移(有漏洞:请求参数可以修改,js代码可以修改,时间戳由客户端处理和决定 有风险。但没有其他更好方案)
>
> e.g. 假设客户端是UTC+8,获取`2024-05-28 0:0:0 UTC+8`是时间戳`x`,若要偏移成UTC+0时间刻度一致的`2024-05-28 0:0:0 UTC+0`则要存时间戳`x + 8*1000*60*60`;服务端取回的`y`表示UTC+0`2024-05-28 0:0:0 UTC+0`,若直接在UTC+8的客户端`new Date(y)`则会展示`2024-05-28 8:0:0 UTC+8`,因此若要展示0点时间刻度,则要逆向偏移`new Date(y - 8*1000*60*60)`再去修改时间字符串后面的UTC字段。
Expand Down

0 comments on commit e79764b

Please sign in to comment.