2011-07-21 3 views
0

サーバーの時刻が12時間外になったときにはどうなりますか?私は友人のためのサイトで働いているし、サーバーが私たちのタイムゾーンにあるが、DBにレコードを書き込むときに私たちの後ろに12時間です。だから私はそうのようにチェックしました:タイムゾーンの問題

<?php echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time())); 
    phpinfo(); 
?> 

結果:

It is Thu on Jul 21, 2011, 04:46:46 time zone: GMT 
... 

date 

date/time support enabled 

"Olson" Timezone Database Version 2010.15 

Timezone Database internal 

Default timezone Pacific/Auckland 


Directive Local Value Master Value 

date.default_latitude 31.7667 31.7667 

date.default_longitude 35.2333 35.2333 

date.sunrise_zenit 90.583333 90.583333 

date.sunset_zenith 90.583333 90.583333 

date.timezone Pacific/Auckland Pacific/Auckland 

は、あなたが見ることができ依頼は、PHPは4時46分午前を報告します。それは本当にここの午後4時46分です。 GMTをTimezoneとして報告しますが、PHPinfoはPacific/AucklandをTimezone(GMT + 12)として報告します。

ウェブホストに何が起こっているのか尋ねました。彼らはシステムの時間が正しいので、確信が持てませんでした。 他のphp.iniファイルが導入されていません。

のアイデア?

+0

「タイムゾーン:GMT」の後の「...」とは何ですか?あなたは何かを残していますか? – tehvan

+0

Q:データベースとは何ですか?また、データベースに対して「getdate()」(または同等のもの)を呼び出すとどうなりますか?オフチャンスでPHPが依然として犯人である可能性があるので、date.default_timezone、$ TZ、date.timezoneを再調整する問題をここで見てください:http://www.php.net/manual/en/function.date-default-timezone- get.php – paulsm4

+0

DBはMySQLであり、時間関数は単に "system"を返しただけです。 この狩りを誘発したソフトウェアはJoomlaです...私は時間が間違っていると思っています。 – Onyx

答えて

1

gmstrftimeはGMT時刻を報告してくれます。 ローカル(AKL)時間を取得するにはstrftimeが必要です。 php.iniのタイムゾーンがAKLに設定されている可能性がありますが、これも正しいです。 正しい質問は「strftime(または他のPHPの現在の時間関数)レポートは何ですか?」です。

+0

多くのおかげで、これは正しいです...それは正しい関数を使用するのに役立ちます! strftimeは正しくNZSTを報告します。 – Onyx

0

gmstrftime GMTの本質的な報告時刻です。それはgmのためのものです。 :)

+0

私はリンクを提供しているはずです。ここに行く:http://php.net/manual/en/function.gmstrftime.php。 –

+0

ありがとう...正しい関数を使用するのに役立ちます;) – Onyx

関連する問題