开发者社区> 问答> 正文

对于Discuz后台怎么设置时区

Discuz的用户首页可以看到其所在时区,后台也可以设置时区,这是国际化的路线啊
我在想它整个系统是不是用的格林威治时间,然后根据用户所在时区转换为本地时间的
比如一个论坛有中国和美国的用户同时在线发帖,系统记录发帖的时间是世界时间
我只追到系统有一个 .sourceclassdiscuzdiscuz_application.php 类里面有一个 timezone_set()方法@date_default_timezone_set('Etc/GMT'.($timeoffset > 0 ? '-' : '+').(abs($timeoffset)));这个设置了$timeoffset其实是0啊,也就是说是设置了格林威治时间了啊
有谁对dz源码比较熟悉的,指点我一下思路哈,谢谢了!

展开
收起
蛮大人123 2016-02-13 10:52:04 3346 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    不管怎么设置时区,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)
    }
    2019-07-17 18:41:49
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载