Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已答复] UCH2.0的服务器时区设置问题

[复制链接]
我又来了 发表于 2009-9-4 15:23:51 | 显示全部楼层 |阅读模式
本帖最后由 玻璃屋女孩 于 2009-9-4 16:40 编辑

我的主机在美国亚利桑那州  时区是 GMT -7   而中国时区是 GMT+8   
如果我把uch2.0后台的服务器时区设置成GMT-7 那么填写的 活动开始时间和截止时间都是我要填写的时间, 就是说显示正常,和服务器所在时区差为0
比如:活动时间:
    10月03日 18:00 - 10月04日 08:00
截止报名:
    10月02日 23:59

但是 用户参与时间什么的 都自动用了 真正服务器所在的时区的时间显示,那么正好跟中国时区差了15个小时,中国用户看到的自己的参与时间是 中国时间减去15个小时后的 服务器所在的时区时间。

如果我在后台把服务器时区改成中国时区GMT+8 ,那么中国用户参与时间显示正常,但是 我要填写的活动开始时间和截止时间 都会自动加上15个小时,除非我自己在填的时候自己计算减去15个小时,否则不能显示正常,这对用户使用来说是 不可想象的。 也就是说,UCH2.0在计算时间的时候会 始终和真正的服务器时区进行比较得出时间差。 这个不知道怎么解决。
比如我改成GMT+8后 以上时间变成了:
活动时间:
    10月04日 09:00 - 10月04日 23:00
截止报名:
    10月03日 14:59

我的UCenter 的时区设置是 GMT+8 并且是24小时制。

不知道怎样才能改成 只要我设置好时区,那么所有时间都按照我设置的时区统一显示,而不是根据真正的服务器时区比较所得出的动态变化的时间。
谢谢
 楼主| 我又来了 发表于 2009-9-4 15:36:59 | 显示全部楼层
本帖最后由 我又来了 于 2009-9-4 15:42 编辑

比如后台设置成GMT-7 时   也就是我的服务器的时区。      发起一个热闹
# 发起时间: 2009-09-03 22:58   其实中国用户是 在13:58发起的
# 参与截止: 2009-12-31 23:59   这个时间是 GMT-7的 也就是用户希望要填写的时间
# 最后参与: 2009-09-03 22:58   其实中国用户是 在13:58最后参与的

而后台改成GMT+8后 和我的服务器时间差15个小时 以上变成了
# 发起时间: 2009-09-04 13:58   正常 中国用户的参与时间
# 参与截止: 2010-01-01 14:59     和我的服务器差了15个小时   其实中国用户是想 2009-12-31 23:59截止的
# 最后参与: 2009-09-04 13:58    正常 中国用户的最后参与时间
回复

使用道具 举报

 楼主| 我又来了 发表于 2009-9-4 15:41:20 | 显示全部楼层
改后  发起时间和最后参与时间   都按照 我设定的GMT+8显示了
但是 参与截止时间 仍然对  真正的服务器时区进行了比较,用户填2009-12-31 23:59 ,系统默认其为真正的服务器时区时间(GMT-7),而计算为将其加上15个小时。 显示成2010-01-01 14:59
回复

使用道具 举报

玻璃屋女孩 发表于 2009-9-4 15:43:58 | 显示全部楼层
你可以点以下链接查看该问题解决进展,我们排查一下
http://u.discuz.net/home/bug.php?serial=531
回复

使用道具 举报

guanjingla 发表于 2009-9-4 15:49:11 | 显示全部楼层
楼主那么厉害啊??
回复

使用道具 举报

 楼主| 我又来了 发表于 2009-9-4 15:49:21 | 显示全部楼层
谢谢 这个问题 不解决 好像会造成时间显示上的错乱。
成为两种时间显示模式,
不知道各种应用之间的时间设置 有什么联系没。特别是Ucenter的时间设置对UCH 有没有影响。
如果时区设置和Ucente 还有discuz那样就ok,至少保持一种应用内时间显示的一致性。
回复

使用道具 举报

 楼主| 我又来了 发表于 2009-9-4 16:13:08 | 显示全部楼层
本帖最后由 我又来了 于 2009-9-4 16:16 编辑

看完自己的描述 又总结了一下UCH2.0的时间计算方式:
1.凡是用户的参与行为 导致的自动记录时间 都和后台设置的服务器时区时间保持一致。
比如 我的服务器设置成GMT-7后, 无论用户在什么时区,他的参与行为时间始终记录为后台设置的时区时间。
如果用户在中国,那么参与时间是GMT-7的时间,而不是GMT+8的时间。这时候用户就会看到自己的参与时间往前了15个小时。

2.凡是发起活动和热闹 要填写的 开始和截止时间, 系统都是默认为你填写的是真正的服务器时区时间,忽略后台设置。象我后台设置成GMT+8 填写2009-12-31 23:59的时候,系统不认为是 GMT+8的 2009-12-31 23:59 ,而是认为其是 GMT-7时区的 2009-12-31 23:59, 那么显示出来时,是把这个时间和后台的服务器时区设置  进行比较,那么我的情况 就是 加上了 15个小时 进行显示。
这个时候 就造成了 和用户意图不一致。
回复

使用道具 举报

 楼主| 我又来了 发表于 2009-9-4 16:21:35 | 显示全部楼层
所以 综上所述, UCH2.0如果时间显示有问题的话,是出在填写时间上(比如活动的开始和截止时间),忽略了后台服务器时区设置,而始终认为填写的是真正的服务器时区时间,而显示的时候,偏偏又跟后台的时区设置进行比较计算。
回复

使用道具 举报

 楼主| 我又来了 发表于 2009-9-4 16:29:22 | 显示全部楼层
刚刚 发现 热闹的 截止时间 计算还不是和 后台的时区设置进行比较的, 而是和 GMT+0(零时区进行比较的) 。  不知是 我的主机出了 问题 还是真的UCH 出了问题,呵呵
回复

使用道具 举报

 楼主| 我又来了 发表于 2009-9-4 16:35:51 | 显示全部楼层
期待官方 排查解决, 不知是我错判,主机和设置错误,还是真的 UCH 本身的问题。总之我的UCH确实出现问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 06:52 , Processed in 0.029736 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表