V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lbfeng
V2EX  ›  Flask

flask 得到 client 的 local time

  •  
  •   lbfeng · 2016-06-02 08:11:20 +08:00 · 3796 次点击
    这是一个创建于 3125 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器用的是 GMT ,假设某个活动 GMT00:00 结束,部分地区当地日期还在 00:00 之前,容易造成混淆,怎么得出 client 的 local time 和 00:00 比较。

    第 1 条附言  ·  2016-06-02 11:42:12 +08:00
    大概是这么个样子,假设无论全球哪个角落,当地时间 00:00 结束。北京用户 23:59 分发送请求可以处理,一分钟之后和北京同一时区的地区的所有请求拒绝。同时,美国东海岸是 11:59 , 12 个小时之后请求才会被拒。
    第 2 条附言  ·  2016-06-02 11:42:24 +08:00
    大概是这么个样子,假设无论全球哪个角落,当地时间 00:00 结束。北京用户 23:59 分发送请求可以处理,一分钟之后和北京同一时区的地区的所有请求拒绝。同时,美国东海岸是 11:59 , 12 个小时之后请求才会被拒。
    第 3 条附言  ·  2016-06-02 11:43:48 +08:00
    不判断用户当地时间怎么能拒绝请求呢
    15 条回复    2016-06-03 22:42:49 +08:00
    XianZaiZhuCe
        1
    XianZaiZhuCe  
       2016-06-02 08:23:49 +08:00 via iPhone
    难道不是统一时间?
    SlipStupig
        2
    SlipStupig  
       2016-06-02 08:27:19 +08:00
    @XianZaiZhuCe 有些服务器使用的是标准的 0 时区的时间,我国用的是+8 的时间,之前遇到过这个坑
    hahastudio
        3
    hahastudio  
       2016-06-02 08:32:53 +08:00
    你是要活动结束在客户端当地时间的 0 点还是服务器时区的 0 点?
    这个一般都是服务器时区吧?
    很简单啊,请求过来 time.time() 看是不是 0 点
    jimzhong
        4
    jimzhong  
       2016-06-02 08:37:04 +08:00
    按理说应该以 UTC 时间为准。
    Ahri
        5
    Ahri  
       2016-06-02 08:39:27 +08:00   ❤️ 1
    我觉得楼主意思是活动时间还是统一服务器为准,但是在网页显示结束时间为本地时间。这个必须要在客户端处理, JS 从服务器获取 UTC 时间再作时区转换。
    XianZaiZhuCe
        6
    XianZaiZhuCe  
       2016-06-02 09:42:02 +08:00 via iPhone
    @SlipStupig 就是说公司的服务器,时区并不统一?
    lbfeng
        7
    lbfeng  
    OP
       2016-06-02 11:33:27 +08:00
    @hahastudio 当地时间的 0
    lbfeng
        8
    lbfeng  
    OP
       2016-06-02 11:35:14 +08:00
    @Ahri 不是这个意思。以当地时间为准 0 点。现在服务器需要当地时间,不然没法判断。
    yangtukun1412
        9
    yangtukun1412  
       2016-06-02 11:44:40 +08:00
    需要客户端上传所在时区
    hahastudio
        10
    hahastudio  
       2016-06-02 12:36:00 +08:00
    那你只能去让客户端提供时区啊
    关键是为什么会是这么想的需求,难道你们活动开始的时间每个时区也不一样么= =
    ryd994
        11
    ryd994  
       2016-06-02 14:22:18 +08:00
    那我岂不是改改电脑时区就可以绕过结束时间了?
    Ahri
        12
    Ahri  
       2016-06-02 15:28:07 +08:00
    这个需求太奇怪了。
    m0nkeyd
        13
    m0nkeyd  
       2016-06-02 17:22:53 +08:00 via Android
    不如换一个方法,从 IP 转换成时区,但是还有夏令时问题,小问题挺多的还
    ibigbug
        14
    ibigbug  
       2016-06-02 19:17:55 +08:00
    我在北京,我告诉服务器说我在扭腰,你让我参加吗?
    julyclyde
        15
    julyclyde  
       2016-06-03 22:42:49 +08:00
    首先,中国并不是 UTC+8 ,而是 CST ,这是完全不同的概念:
    考虑到夏令时、朝鲜调 9 区到 8.5 时区之类的破事,有些时刻是“依法不存在”的

    记录客观事件,就要用客观时间,按 UTC 记录。展示的时候再本地化出来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2602 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.