首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
拉勾
V2EX  ›  问与答

请教一下 datetime 的问题

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

    时间不区分时区的,虽然拿到时间戳也是要转,但是各地的时间戳都是一样的,所以处理起来也直观
    ![img]( https://www.linuxidc.com/upload/2016_01/160119095040111.jpg)
        13
    aaronlam   209 天前
    @aaronlam

    时间不区分时区的->时间戳不区分时区的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1037 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1