• 技术文章 >后端开发 >php教程

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

    2016-07-29 09:14:46原创1422
    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教程有兴趣的朋友有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:cookie tmp GMT 39 localZone
    上一篇:nginx设置动静分离 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊php百万数据怎么写入csv• PhpMyAdmin中无法导入sql文件的解决办法• php后台如何避免用户直接进入方法实例_php实例• 关于phpcms 中头像下传 那位高手说上怎么实现的• 请问下php的zend加密的有关问题
    1/1

    PHP中文网