現在UTCにあるタイムゾーンをGMT +1に変更するにはどうすればよいですか?正しい行は何ですか?また、phpMyAdmin SQL実行でそれを入力するだけですか?
私のホストはちょうど私にこのリンクを与えました http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html そして私はちょっと失われた感謝です
次のコマンドを発行します。
SET time_zone = 'America/New_York';
(またはGMT + 1のタイムゾーンは何でも: http://www.php.net/manual/en/timezones.php )
これは、クライアントが複数のタイムゾーンに分散していると仮定して、個々のクライアントのMySQLタイムゾーンを設定するコマンドです。
このコマンドは、日付を含むすべてのSQLコマンドの前に実行する必要があります。クエリがクラスを通過する場合、これは簡単に実装できます。
これを行う最も簡単な方法は、Umarが指摘しているように、たとえば
mysql> SET GLOBAL time_zone = 'America/New_York';
指定されたタイムゾーンを使用することは、夏時間調整を行うタイムゾーンにとって重要です。ただし、一部のLinuxビルドでは、次の応答が返される場合があります。
#1298-タイムゾーンが不明または正しくない
これを見ているなら、tzinfo_to_sql変換を実行する必要があるかもしれません...それは簡単ですが、明らかではありません。 Linuxのコマンドラインから次のように入力します。
mysql_tzinfo_to_sql /usr/share/zoneinfo/|mysql -u root mysql -p
ルートパスワード(Linuxルートではなく、MySQLルート)を入力すると、zoneinfoの定義がmysqlにロードされます。その後、戻って実行することができます
mysql> SET GLOBAL time_zone = timezone;
Bryonの答えは役に立ちますが、彼のリンクはPHPタイムゾーン名のためのものであり、MySQLタイムゾーン名とは異なります。
個々のセッションのタイムゾーンをGMT + 1(正確にはUTC + 1)に設定する場合は、そのコマンドで文字列「+01:00」を使用します。つまり:
SET time_zone = '+01:00';
MySQLセッションが使用しているタイムゾーンを確認するには、次を実行します。
SELECT @@global.time_zone, @@session.time_zone;
これは、より詳細な素晴らしいリファレンスです: タイムゾーンに関するMySQL 5.5リファレンス
セッションとユーザー設定ごとのPHP(> = 5.3)とMySQLタイムゾーンを同期する方法は次のとおりです。タイムゾーンの設定と同期が必要なときに実行する場所にこれを配置します。
date_default_timezone_set($my_timezone);
$n = new \DateTime();
$h = $n->getOffset()/3600;
$i = 60*($h-floor($h));
$offset = sprintf('%+d:%02d', $h, $i);
$this->db->query("SET time_zone='$offset'");
$ my_timezoneは、PHP timezones: http://www.php.net/manual/en/timezones.php
PHPタイムゾーンは、MySQLの時間と分のオフセットに変換する必要があります。それが1行目から4行目です。
SUPER特権を持っている場合は、次のステートメントを使用して、実行時にグローバルサーバーのタイムゾーン値を設定できます。
mysql> SET GLOBAL time_zone = timezone;
SET time_zoneまたはSET GLOBAL time_zoneが機能しない場合は、次のように変更できます。
タイムゾーンシステムの変更、例:ubuntu ... $ sudo dpkg-reconfigure tzdata
サーバーを再起動するか、Apache2とmysqlを再起動します(/etc/init.d/mysql restart)
これはうまくいきます
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
$con->query("SET GLOBAL time_zone = 'Asia/Calcutta'");
$con->query("SET time_zone = '+05:30'");
$con->query("SET @@session.time_zone = '+05:30'");
?>