12 条回复  ·  1479 次点击
ksedz 小成 2024-11-29 10:28:54
时间戳或者 UTC ,需要注意的是有些 orm (不仅仅是数据库)会自动根据时区进行转换,需要处理下。
zeromake 小成 2024-11-29 10:33:28
@barrywey 然后一往 db 里塞了发现 db 有自己的时区()
esee 小成 2024-11-29 10:35:24
都是存储和返回时间戳给客户端自己解析的。。纯数字的时间戳才方便做各种分析
barrywey 初学 2024-11-29 10:39:33
@zeromake 数据库也要 UTC ,或者干脆整个服务器都配置成 UTC
rocmax 初学 2024-11-29 10:40:05
timestamp 是绝对的,日期和本地时间是相对的。如果服务器和客户端无法强制统一时区,则系统测一律使用 utc ,客户端按照本地时区转换。 浏览器提供了本地时区检测 api ,
vczyh 小成 2024-11-29 10:41:14
数据库怎么存和服务保持一致就行,服务返回给渲染层按照 ISO8601 https://en.wikipedia.org/wiki/ISO_8601 来,这个我觉得比时间戳直观。
rocmax 初学 2024-11-29 10:41:27
@rocmax 同时也应该提供手动切换选项。 前一阵用 nextjs 开发 app ,服务端渲染时时区更是个麻烦事,需要客户端将时区存在 cookie 里,服务端根据客户请求渲染页面。
Mithril 小成 2024-11-29 10:56:19
存储不要用 UTC ,用 DatetimeOffset ,主要是相比 UTC ,它有个时区的偏移量。 这样你能知道你这条数据,是从哪个时区生成的。特别是你在同一个服务器中处理不同时区发过来的数据时,未来你如果想要显示这数据生成时的本地时间,那你存 offset 会省很多事。你如果只存 UTC ,等你加了这需求的时候会有大把的数据显示不正常。所以如果你做跨国的应用,不如从开始就存 offset 。 然后所有程序中处理的时候都用它来做,最终显示的时候再转换回本地时区。
zeromake 小成 2024-11-29 11:02:42
@barrywey 然后联系运维,运维说是云的数据库,改起来太麻烦了……
dode 小成 2024-11-29 11:04:38
所有的中国服务器,软件,环境变量等配置好东八时区
12
返回顶部