2012-03-09 11 views
0

date()には秒数を使用できます。例えばdate('H:i:s', 3652)です。 しかし、私は日付のタイムゾーンに設定した場合、それは間違った文字列を返します。タイムゾーンオフセットが含まれています

date('H:i:s', 1); // it should returns '00:00:01' 
date_default_timezone_set('Europe/Rome'); 
date('H:i:s', 1); // it returns '01:00:01'. 3600s plus! 

私はそれを修正することができますどのように?

答えて

0

ヨーロッパ/ローマンタイムゾーンはGMT + 1です。エポックでローマの時間を返すので(GMTよりも1時間前)、正しいです。

+0

はい、ですが、H:i:s形式で正確に秒が必要です。オフセットは含まれていません。 – mrdaliri

+0

時間、分、秒の数を秒単位で計算したいだけですか?たとえば、86401は何を返しますか? 00:00:01を返すか、24:00:01に返すべきですか?あなたの答えが前者の場合は、date()を使用するだけで、タイムゾーンをUTCに設定することができます。あなたの答えが後者の場合、 'date()'は正しくないので秒を時、分、残りの秒に変換する関数を書く必要があります。 – Crashspeeder

0

解決策を見つけました。

date_default_timezone_set('Europe/Rome'); 
$offset = date('Z'); 
date('H:i:s', 1 - $offset); // it returns '00:00:01' now. 

と同じように、Crashspeeder氏によると、秒から時分、分、秒に変換する機能が優れていると述べています。それは86400秒以上サポートしているからです。

関連する問題