假设注册截止时间是北京 6 月 15 日 23:59 ,当北京是 6 月 16 日 2 时 00 分时已经过了截止时间,纽约是 6 月 15 日下午 2 时,不能注册了。纽约用户会抱怨,还没过截止时间。我也没办法直接在站上写截止时间是北京时间 6 月 15 日 23:59 ,因为不能让用户去换算出这是当地的几点。有什么办法能识别当地的时间并和 6 月 15 日 23:59 (无论哪个时区)这个时间作比较。
后端 flask
1
binux 2016-06-12 07:43:53 +08:00
为什么不能写「截止时间是北京时间 6 月 15 日 23:59 」?
你用户群是哪个时区,就写哪个时区的时间,多个时区,就写多个主要时区的时间,有什么不可以? 实在不行,写 UTC 也可以啊 |
2
caizixian 2016-06-12 07:48:17 +08:00 via Android
|
3
publicID002 2016-06-12 08:59:49 +08:00 via Android
可以用 js 直接帮用户换算成当地时间
|
4
jhaohai 2016-06-12 09:36:10 +08:00 via iPhone
直接用倒计时
|
5
Mutoo 2016-06-12 09:38:14 +08:00
前端 javascript 的 Date 默认使用的就是 local time ,提交到 server 的时候,将 timezone 一并提交。
后端用预定好的时间 + timezone 构造 Date 实例作截止时间判断。 |
6
just4test 2016-06-12 09:46:08 +08:00
|
7
hahastudio 2016-06-12 10:06:42 +08:00 via Android
你看这么多活动的截止时间都写 PDT ,也没见其他时区的用户抱怨不是= =
|
8
BOYPT 2016-06-12 10:11:40 +08:00
都是给服务商当地时间然后客户自己算的啊,平时国外网站优惠活动都是这样的。
如果你的客户特别高贵,就为他专门算一个显示在页面上咯 |
11
dorentus 2016-06-12 12:21:04 +08:00
所以你想要实现的是下面这样?
1. 用户 A (在东八区)设置了一个事件的截止时间为 6 月 15 日 23:59 2. 用户 B (也在东八区)在北京时间 6 月 16 日 00:00 时来看,发现事件已经截止了 3. 用户 C (在东七区),和 B 在同一个时间点来看,发现事件还没截止 那么问题来了,这事件到底什么时候截止? 假如我一台电脑用的是东九区的时间,另一台用的是东八区的时间,那么对于同一个事件,两边看到的状态不一样,这合理吗? ---- 正确的解决办法就应该是像上面大家说了的,在客户端 /前端把时间换成用户本地的时间显示,这样谁也不会弄错,再加个倒计时就更好了。 |
12
yangff 2016-06-12 12:23:07 +08:00
时间写 XX:XX UTC 然后加上这个链接 http://www.timeanddate.com/worldclock/
|
13
mko0okmko0 2016-06-12 14:43:34 +08:00
整个是概念与意图的问题.
假设不使用 UTC/北京时间这样统一的截止时间. 那就各目标区域各有各的截止时间. 例如中文网页截止时间.英文网页截止时间.XX 语系的截止时间. 或是从用户端的浏览器讯息 /IP 来判断用户在哪个时区.用该时区的截止时间. 例如一个中文人士在美国.请问他该用哪个截止时间?在我看是应该用美国的. 用户报名时.应该上传储存该用户的地区 /时区 /语系讯息.用于设计结始时间的考虑. |
14
jokie 2016-06-12 14:56:22 +08:00
美国人访问的时候 换算一下时间 不行么
|
15
lbfeng OP @dorentus 是这样的,用户 A 有自己的网站,据我调查都只显示一个截止日期比如 6 月 15 日,并没有标注时区,也没有时区转换表(这个部分我控制不了)。 A 的网站上有注册链接导到我这边来。假设其他用户只有在需要注册时才会到我这, 并且本能的认为 6 月 15 日是自己时区的 6 月 15 日(因为 A 的站里没有写明时区)。时区较晚的用户在本地 6 月 15 日较晚时注册会比较尴尬,因为前后价格可能会差几十至几百刀。用户 A 本身并不在乎一天内的差价,但希望能针对不同时区的用户只要当地还在 6 月 15 日内价钱就不变,主要是这一小撮用户回去联系 A ,认为这个不合理, A 觉得可以忽略时区差异。至于您假设的一个用户两台不同时区的电脑,由于可能性太低可以不用考虑。
我的初衷是必须用户友好,不能让用户自己去换算时差。 |