-1

私のデータベースには、「2013-01-24 16:40:08」というレコードがあります

PHP で関数strtotimeを使用すると、タイムスタンプ1359045608が取得されます。

クエリの実行:

SELECT UNIX_TIMESTAMP(my_timestamp_column) FROM my_table WHERE my_id_column = my_id

タイムスタンプ1359045608ではなく、タイムスタンプ1359056408を取得します。

1359056408を変換すると、 '2013-01-24 19:40:08 'が表示されます。

4

4 に答える 4

1

私は私の問題を解決しました:

SELECT UNIX_TIMESTAMP(my_timestamp_column) + TIMESTAMPDIFF(second, UTC_TIMESTAMP(), NOW())
FROM my_table
WHERE my_id_column = my_id
于 2013-01-24T21:03:32.210 に答える
0

タイムスタンプをPHPの日付に変換し直しているに違いありません。

タイムスタンプの違いを見てください:1359056408- 1359045608= 10800

60次に、それを秒/分と60分/時間で割ります。

10800 / 60 = 180
180 / 60 = 3

これは、UTC時刻から3時間ずれているタイムゾーンにいることを意味します。UTCでタイムスタンプを生成できる関数を使用するか、(その場合は)時間の局所性の問題に「対応」または影響を受けない日時ストレージ形式を使用する必要があります。

于 2013-01-24T20:15:38.703 に答える
0

異なるタイムゾーンに設定されていると思います。

MySQLの時間をPHPシステムの時間と比較します。

  SELECT NOW();

対。

  <?php
      $date = date('Y-m-d H:i:s');
       echo $date;

彼らはおそらく2時間オフになります。

于 2013-01-24T20:13:03.057 に答える
0

データベースで GMT を使用している場合は、php で設定することにより、同じタイムゾーンを使用するように php を設定できます 。date.timezonedate.timezoneを参照してください。この方法では、指定したタイムゾーンを使用する必要があります。strtotime

于 2013-01-24T20:33:44.890 に答える