2012-03-15 16 views
1

私は問題があります。PHPのタイムゾーンで作業していますが、チリの場合は問題に直面しています。チリの場合CLTは通常とCLSTを夏時間の場合に適用し、PHPコードはAmerica/Santiagoです。しかし、それには現在DSTがないことを返しますが、実際には、現在DSTがある...誰もが感謝を助けることができる、DSTの場合、チリのタイムゾーンが間違っています

+0

コードを教えてください。 – akond

+0

<?php date_default_timezone_set( 'America/Santiago'); "Current" .date( 'e T c I');?> – user1270874

答えて

2
date_default_timezone_set ('America/Santiago'); 
$time = strtotime ('11 March 2011'); 

for ($i = 0; $i < 10; $i ++) 
{ 
    echo "<br/>Current " . date ('e T c I', $time); 
    $time += 60 * 60 * 24; 
} 

は、お住まいの地域で

Current America/Santiago CLST 2011-03-11T00:00:00-03:00 1 
Current America/Santiago CLST 2011-03-12T00:00:00-03:00 1 
Current America/Santiago CLT 2011-03-12T23:00:00-04:00 0 
Current America/Santiago CLT 2011-03-13T23:00:00-04:00 0 

DSTは、3月12日で終了することを示しています。 もちろん、DSTがhttp://www.timeanddate.com/news/time/chile-longer-dst-2012.htmlに基づいて延長されていることはわかっていますが、PHPはそれを知りません。

+0

コメントありがとうございますが、このコードは正しい値を返していません。 DSTルールに従ってDSTのタイミングがあります。開始:10月11日 終了:3月29日現在、このコードではDSTが必要ですが、その場合はこのコードではありません。 – user1270874

+0

私は責任がありません。これはphp関数のdate()です。異なるPHPバージョンは異なる結果を返します。 – akond

+0

php date関数が間違った値を返していません。なぜ私は解決策を求めているのですか?自分のプロジェクトでカスタムコードを実行したくないからです。助けてください!! – user1270874

0

同じ問題がありました。 timezonedbを更新することは私の仕事です。

移動先:Widnowsの場合https://pecl.php.net/package/timezonedb

は "EXT" ディレクトリにコピーし、DLLの最新バージョンをダウンロードしてください。 php.iniを編集し、ラインの下に置く:Linuxの場合

拡張子= php_timezonedb.dll

あなたが使用することができ :

PECL timezonedb

とphp.iniのプットをインストール:

extension = php_timezonedb.so

関連する問題