PHP转换数据库的GMT+8的字符串为用户本地时区时间

WBOY
풀어 주다: 2016-07-29 09:14:46
원래의
1908명이 탐색했습니다.

  1. 将用户时区写入cookie
  2. php读取用户时区并处理

用户打开浏览器的瞬间,使用js得到时区并写入cookie,这里可以使用github上的一个开源库来操作

https://github.com/js-cookie/js-cookie

具体的代码如下

        // 写入时区至Cookie,单位为分钟,但是注意,这里的Offset是负数,表示的是本地时间与GMT的差
        var d = new Date();
        Cookies.set('localZone',d.getTimezoneOffset()); 
로그인 후 복사

在PHP服务器端,如果储存在数据库字段的时间值为时间戳,那么则好处理很多,但是这里需要注意的是,如果你的服务器默认为GMT+8时区的时间戳,而不是GMT的时间戳,那么需要进行处理一下,代码如下(这里我使用的是ThinkPHP框架

            $tmp = strtotime($strTime); //这里将Y-m-d H:i 格式的字符串转换成时间戳
            $tmp = $tmp - (8 * 3600); // 服务器储存的字符串是GMT+8的,所以,这里我减去8小时的毫秒数,也即得到GMT的时间戳
            $timeZone = -cookie('localZone'); // 因为为差,需要加上,故转成正数
            $tmp = $tmp + ($timeZone * 60); // 加上浏览器所在地方的时区
            $logInfo[$i]['access_time'] = date('Y-m-d H:i',$tmp); // 格式化时间戳为Y-m-d H:i
로그인 후 복사

以上就介绍了PHP转换数据库的GMT+8的字符串为用户本地时区时间,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!