いくつかの考慮事項を次に示します。
- 列タイプを に設定して、
BIGINT
64 ビットのタイムスタンプを保存できるようにします
- PHP
time()
関数、またはMySQLのUNIX_TIMESTAMP()
関数を使用して挿入できます
- 列に 以外の名前を付けます
timestamp
。これは許可された単語です1前のセクションを参照してください が、MySQL の型でもあります。
時刻を MySQL に Unix タイムスタンプとして保存すると、UTC で保存されるため、タイムゾーンの変換が非常に簡単になります。64 ビット環境では、PHP は 219,250,468 年までの日付を処理できます。
これらのクエリはどちらも同じです。
INSERT INTO `table` (`time`) VALUES(UNIX_TIMESTAMP());
// or
$time = time();
INSERT INTO `table` (`time`) VALUES($time);
次に、PHP で表示します。
SELECT `time` from `table` WHERE `id` = 1;
echo date('Y-m-d H:i:s e', $row['time']); // 2012-07-31 23:59:59 America/Los_Angeles
PHP で設定されているタイムゾーンは、PHPdate_default_timezone_set()
で日付を出力するときに使用されるタイムゾーンになります。