请教一下 datetime 的问题

2018-08-23 13:40:01 +08:00
 coolair
我的数据库中存的 datetime 是 utc 时间,字段类型是 datetime。
现在的问题是:
前端展示时间的时候,应该显示本地时间,所以就需要 utc 转成 local 时间。
但是在表单提交的时候,表单中选中的时间是本地时间,提交前需要转成 utc 时间。
是不是都是要这样转来转去?有更好的方法吗?
1291 次点击
所在节点    问与答
13 条回复
Vhc001
2018-08-23 13:44:10 +08:00
是不是都是要这样转来转去?是的
有更好的方法吗?时间戳了解下
aaronlam
2018-08-23 13:46:02 +08:00
一般都存时间戳
coolair
2018-08-23 14:02:04 +08:00
@Vhc001 #1
@aaronlam #2
存时间戳的话,如果存的是 utc 时间的时间戳,那不是也要转吗?
Vhc001
2018-08-23 14:11:24 +08:00
@coolair #3 时间戳不存在时区的概念。
ssynhtn
2018-08-23 14:11:36 +08:00
@coolair 时间戳是不管时区的, 时间戳+时区=>显示的日期和时间
不过俺们公司都是存 datetime 的, 我想存 timestamp 还被强制改回来呢
KeatingSmith
2018-08-23 14:14:13 +08:00
可以使用 pytz 库,这是地址: http://pytz.sourceforge.net/
leafiy
2018-08-23 14:40:50 +08:00
我司产品都是国际用户,时间时区确实研究了很久
如果同时面对 2 个时区的用户,真没觉得时间戳能解决问题,最终还是采用了 utc 时间
后来直接在数据库加一层,取数据时自动转成多个时区,前端想用哪个就用,不用转
coolair
2018-08-23 14:45:48 +08:00
@leafiy #7 你的意思是取数据时转成了多个时区的数据全部丢给前端?
rrfeng
2018-08-23 14:45:50 +08:00
@leafiy
utc 时间 = 北京时间 = xxx 时间 = 时间戳
只是显示的字符串不一样而已,凭什么 utc 能解决时间戳解决不了的问题?
leafiy
2018-08-23 15:28:25 +08:00
@rrfeng 我没说清楚,我们最开始用的 utc,因为要在前端展示不同时区,每个用户用户也有自己的时区设置,转来转去很麻烦,后来改用了时间戳根据用户设置转,可还是需要转啊,再后来直接加了个中间层直接把所有需要的时间格式全部一起生成了,再也不用转时间了,存 utc 还是时间戳都不用再考虑了
leafiy
2018-08-23 15:30:55 +08:00
@coolair yes,现在用的 mogoose 的 virtual 方法,直接吐出诸如 created:{us:xxx,zh_cn:xxx}
aaronlam
2018-08-23 15:34:42 +08:00
@coolair

时间不区分时区的,虽然拿到时间戳也是要转,但是各地的时间戳都是一样的,所以处理起来也直观
![img]( https://www.linuxidc.com/upload/2016_01/160119095040111.jpg)
aaronlam
2018-08-23 15:35:44 +08:00
@aaronlam

时间不区分时区的->时间戳不区分时区的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/482509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX