0

現在、私のクエリは次のようになっています(関連部分):

UPDATE last_seen=NOW()

しかし、それは私のものより2時間早い時間を挿入します。それを調整する方法はありますか?

ありがとう

4

4 に答える 4

2

DBにタイムゾーンを設定します。この投稿をご覧ください。 https://stackoverflow.com/a/3451971/1227435

これはもう1つの優れたリソースです。

PHPとMySQLでタイムゾーンの問題がある

于 2012-07-05T20:53:19.627 に答える
1

次のようなことを試してみることをお勧めします。

ユーザーhidden inputのタイムゾーンを収集する必要があります

<input type="hidden" name="offset" class="offset">
$('.offset').val(new Date().getTimezoneOffset());

次に、更新前に取得し、そのように秒に変換します

$offset    = intval($_REQUEST['_offset']) * 60;

最後にそれをに追加しtime()ます:

$now = time() + $offset;

上記を実行すると、クライアントのタイムゾーンの時刻を含む変数が作成されます。あなたがそれを望まず、そして皆のための共通の時間を望むなら、あなたのindex.php:でこれを使ってあなたのタイムゾーンを設定するだけです。

date_default_timezone_set('TIMEZONE IN HERE'); //Supported timezone list: http://www.php.net/manual/en/timezones.php

ただし、php.ini(タイムゾーン)に設定するか、サーバーのタイムゾーン(Debian / Ubuntu:)を変更するdpkg-reconfigure tzdata方がよいでしょう。

于 2012-07-05T21:00:17.170 に答える
0

MySQLはあなたと同じタイムゾーンにないようです。

いくつかのオプションがあります:

  • MySQLのタイムゾーンを設定します。
  • PHPを使用して、保存する前に日付を設定します。
  • UTCタイムスタンプとして保存してから、正しい現地時間を表示します。より多くのコードが、私はお勧めします。
于 2012-07-05T20:54:27.677 に答える
0

http://dev.mysql.com/doc/refman//5.5/en/time-zone-support.htmlMySQLのタイムゾーンの概念を設定する必要があります。お役に立てば幸いです...

于 2012-07-05T20:55:32.793 に答える