ホームページ >バックエンド開発 >PHPチュートリアル >PHP はデータベースの GMT+8 文字列をユーザーのローカル タイム ゾーンに変換します

PHP はデータベースの GMT+8 文字列をユーザーのローカル タイム ゾーンに変換します

WBOY
WBOYオリジナル
2016-07-29 09:14:461989ブラウズ

  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 タイムスタンプではなく GMT+8 タイムゾーンのタイムスタンプを使用している場合、次のことを行う必要があるということです。コードは次のとおりです (ここでは ThinkPHP Frame

を使用しています)


            $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 までご連絡ください。