首頁 >後端開發 >php教程 >PHP轉換資料庫的GMT+8的字串為使用者本地時區時間

PHP轉換資料庫的GMT+8的字串為使用者本地時區時間

WBOY
WBOY原創
2016-07-29 09:14:461991瀏覽

  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