2016-04-09 14 views
0

まず、日付をPHPの整数に変換したい。PHP過去に一致しなかった日付

echo strtotime('08-04-2016 10:33:45 GMT+7'); 

、それが結果だ:。しかし、私は、コードを再確認したとき:

$timezone = +7; 
echo gmdate("H:i:s | d-m-Y ",1460086425 + 3600*($timezone+date("I"))); 

をし、それが結果だ:11:33:45 | 08-04-2016

なぜ1時間かけて、11:33:45 | 08-04-201608-04-2016 10:33:45異なります。

+0

echo gmdate( "h:i:s | d-m-Y"、1460086425 + 3600 *($ timezone + date( "I"))))に変更します。 –

+0

$ felipsmartins、助けてくれてありがとうございますが、それでも "11:33:45 | 08-04-2016"です。 偏差は1時間です。 –

答えて

0

タイムゾーンの設定が正しくないのだろうか。私は最近似たような問題を抱えていました。夏時間が正しく適用されなかったことが原因です。サーバーがどこにあるのかわからない場合、DSTの開始と終了をいつでも知ることはできません。

これがあなたに当てはまるかどうかを調べるには、echo ini_get('date.timezone');をスクリプトで試してみてください。何を得るのですか?あなたの問題がWebスクリプトにある場合はWebコンテキストで、コンソールに問題がある場合はコンソールでこれを実行してください。これは、これを制御するPHP設定がしばしば別々に設定されるためです。

あなたの設定があなたのTZに通常指定している正しい都市を指定していない場合は、php.iniファイルで設定を変更してください。 (timezonesを確認しながら)

date.timezone = Europe/London 
0

私が知る限りGMT + 7の領域がDSTを観察しません:たとえば、私のために、私はこれを使用しています。また、dateは、date.timezoneに設定されたタイムゾーンを使用しますが、これはあなたの地域に適している可能性がありますが、他の場所では間違っている可能性があります。

DateTimeを使用し、正しいDateTimeZoneを指定することをお勧めします。そうすれば、タイムゾーンオフセット(およびDSTがアクティブかどうか)を間違って取得する可能性が大幅に減ります。

関連する問題