将用户时区写入cookiephp读取用户时区并处理用户打开浏览器的瞬间,使用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教程有兴趣的朋友有所帮助。
