1

UTC に対する UNIX タイムスタンプとタイムゾーン オフセット (-5 など) が与えられた場合、DST が有効かどうかを計算できますか?

私は次のようなことができます:

<?php
  echo 'DST enabled? ' . date('I', 1345731453) ."<br>"; 
?>

しかし、オフセットまたは TimeZone を渡す方法がわかりません。

特定の国が DST をサポートしていることを考えると、タイムゾーンとオフセットには違いがあると思いますか?

どんな考えでも感謝します。

4

2 に答える 2

1

正しいです。オフセットを決定するには、日付と tz から始める必要があります。

5.3 以降では、開始/終了期間の遷移を取得できるため、両方のタイムスタンプを次のように使用できます。

$inputTime = $your_unix_timestamp;
$inputTZ = new DateTimeZone('Europe/London'); 

$transitions = $inputTZ->getTransitions($inputTime,$inputTime); 
$offset = $transitions[0]['offset'];

$offset問題の時間の DST オフセットです。

于 2012-08-23T15:06:34.637 に答える
0

次の方法でタイムゾーンを取得します。

$old_zone = ini_get('date.timezone');

必要なものに変更します。

ini_set('date.timezone', 'Europe/Brussels');

戻す:

ini_set('date.timezone', $old_zone);

PHP タイムスタンプは常に UTC です。タイムゾーンの設定に応じて、表示する時間を決定します。

于 2012-08-23T15:05:33.340 に答える