2009-05-22 3 views
1

これは、クエリを実行するとき、私はこれで問題がMySQLでnow()であることが持っていたことだろうか、それがあったに違いMySQLで動作するPHPの `date_default_timezone_set()`に相当するものはありますか?

INSERT INTO articles (title, insert_date) VALUES ('My Title', now()) 

をしたい今

date_default_timezone_set('my/timezone'); 

$actualDate = date('Y-m-d'); 

PHP

で素晴らしい作品PHPで計算されます(したがって、設定されているタイムゾーンに対して)。

MySQLのデフォルトのタイムゾーンを設定する方法はありますか?

おかげ

+0

これはいかがですか?システムがzoneinfoデータベース(WindowsやHP-UXなど)を持たないシステムの場合は、MySQL Developer Zoneでダウンロード可能な事前ビルドされたタイムゾーンテーブルのパッケージを使用できます。 http:// dev.mysql.com/downloads/timezones.html –

+0

私はこれらをダウンロードしました...しかし、それらと何をするべきかわかりません...私は今日の午後のnoobのように感じます:S – alex

+0

私は今のために...私はちょうどdate_time :: getIsoDateTime()を作った:P – alex

答えて

3

http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html

If you have the SUPER privilege, you can set the global server time zone value at runtime with this statement:

mysql> SET GLOBAL time_zone = timezone;

Per-connection time zones. Each client that connects has its own time zone setting, given by the session time_zone variable. Initially, the session variable takes its value from the global time_zone variable, but the client can change its own time zone with this statement:

mysql> SET time_zone = timezone;

+0

ありがとうPaolo;受け入れられるタイムゾーンのリストはどこで入手できますか?ありがとう:) – alex

+0

" - timezoneまたはTZの許容値はシステムに依存します。どの値が受け入れ可能かはオペレーティングシステムのドキュメントを参照してください。" –

+0

私は、PHPがMySQLを使用することができるものは何でも使用できると仮定します... http://www.php.net/manual/en/timezones.php –

1

あなたが試みることができる何かがUTCにあなたの日付/時間のすべてを格納することです。だから、あなたは、あなたがそれを表示する前に、ユーザーのタイムゾーンにUTC日付/時刻を変換します

date_default_timezone_set('UTC'); 
$actualDate = date('Y-m-d'); 

INSERT INTO articles (title, insert_date) VALUES ('My Title', UTC_TIMESTAMP()) 

を使用します。

+0

これは良いしかし、サイトはローカライゼーションに縛られています。しかし、私はこれを将来的には絶対に考慮する+1 – alex

0

通常、MySQLサーバをグリニッジ標準時に設定してから、PHPではdateの代わりにgmdateを使用します。あなたは別のサーバーに移動するか、または異なるタイムゾーンで2つを持っている場合、GMの時間のすべてを保つので、物事はすべて台無しになることはありません。

関連する問題