ユーザーがブラウザを開いた瞬間に、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 チュートリアルに興味のある友人に役立つことを願っています。
🎜