php - 有谁对Discuz比较了解的,每个用户有自己的时区,后台可以设置,这实现了国际化啊
PHP中文网
PHP中文网 2017-04-10 16:47:39
[PHP讨论组]

Discuz的用户首页可以看到其所在时区,后台也可以设置时区,这是国际化的路线啊

我在想它整个系统是不是用的格林威治时间,然后根据用户所在时区转换为本地时间的

比如一个论坛有中国和美国的用户同时在线发帖,系统记录发帖的时间是世界时间

我只追到系统有一个 .\source\class\discuz\discuz_application.php 类里面有一个 timezone_set()方法@date_default_timezone_set('Etc/GMT'.($timeoffset > 0 ? '-' : '+').(abs($timeoffset)));这个设置了$timeoffset其实是0啊,也就是说是设置了格林威治时间了啊……

有谁对dz源码比较熟悉的,指点我一下思路哈,谢谢了!

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
巴扎黑

不管怎么设置时区,time函数得到的时间戳是固定的,不会因为时区不同而不同,只是调用date 的时候,时区就起到作用了,你可以这样理解,如果你在东八区,则date('Y-m-d') 实际上是 date('Y-m-d',time()+8*3600),所以所谓的国际化就可以这样做,存储用户所在时区,然后重新定义一个日期格式化函数,比如

function localdate( $format, $time_zone ){
    return date($format,time()+$time_zone*3600)
}
伊谢尔伦

没有人知道吗

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号