Thinkphp通过前端实现根据用户所在区域格式化对应时区的时间

  • Post author:
  • Post category:php



设置方法:

  • php 中的 time 是生成的 1970年1月1日的格林尼治时间
  • php 的date() 函数是根据php的服务器所在的时区进行格式化的

    因此会存在 时区异常的问题

    所以可以使用 date_default_timezone_set 修改当前时区
   `var shiqv = new Date().getTimezoneOffset()/60;` // 使用js获取当前格林尼治 时间 中国是-8 这个函数返回的是分钟所以需要除以60

因为tp 控制器会继承 base 所以就写到base 的构造函数中


    function __construct() {
    
        
        parent::__construct();
        $this->settimeshiqv(); // 放到入口文件里
        $uid = session('user_id');
        if (!$uid) {
            $uid = cookie('user_id');
        }
        if($uid){
            model('admin/Users')->auto_check_up_vip($uid);
        }
   if (sysconf('isopenpcindex')) {
        $dev = new \org\Mobile();
        $t = $dev->isMobile();
        if (!$t) {
                 $this->redirect('/download');
            }
            
        }
        
        
public function settimeshiqv(){
        $times=   $uid = cookie('shiqv'); //通过cookie 保存
        
        if($times>0){
            $times="+".$times;
        }
        
        date_default_timezone_set("Etc/GMT".$times);

        return true;
    }

我是写在登陆里的 然后直接 setcookie 在每一次请求的时候都会触发 所以就实现了全局动态修改时区



版权声明:本文为qq_39396677原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。