1

私は正しい時間を取得するために使用され、私のウェブサイトに使用される次の関数を持っています。残念ながら、サマータイムをチェックしていないため、時刻エラーが発生しています。誰かが可能な解決策を持っているか、私の問題を手伝ってくれるかどうか疑問に思っていましたか?

私はPHPコーディングに非常に慣れていないので、まだ足場を固めています。誰かが将来自動的に切り替える方法を教えてくれると本当に助かります.

関数は次のとおりです。

function getDSTDifference() {
    $timezone = date_default_timezone_get();

    $newTZ = new DateTimeZone($timezone);
    $trans = $newTZ->getTransitions();

    $offset = $trans[0]['offset'] /60 /60;

    return $offeset;
}

- -編集 - -

私が言おうとしていることをより明確にするために:

通話時間を監視する Web サイトがあります。これらの通話時間は、DST と標準時間 (およびその逆) の間の切り替え中に 1 時間ずれます。たとえば、先週末の時間は次のように表示されます。-57:01:23. 関数をそのままにする代わりに-DSTと通常の時刻が切り替わるたびに2行のコードを手動でコメント解除/コメントアウトする必要がある場合、関数を実行できるようにする解決策はありますかこれは自動的に?より恒久的な解決策のようなものです。私には、単純な変更のように見えるものを何度も何度も作成するために、その機能を絶えず再検討しなければならない冗長なコーディングのように思えます。繰り返しますが、私はこれまで PHP コードで多くの作業を行ったことがないため、使用できる組み込み関数に慣れていないか、これを自分で作成する必要があるかどうかを知りません。誰かがこれについての情報/ヘルプを持っているなら、それは大歓迎です.

function getDSTDifference() {
    $timezone = date_default_timezone_get(); 

    $NewTZ = new DateTimeZone($timezone); 
    $transition = $NewTZ->getTransitions(); 

    $offset = $transition[0]['offset'] /60 /60; 

    //The following two lines need to be commented out when it is 
    //daylight savings time
    //They need to be uncommented when Daylight Savings Time ends

    $dst = $transition[0]['isdst']; 
    $offset = $offset - $dst;

    return $offset;
}

うまくいけば、それはより理にかなっています!助けてくれてありがとう!

4

1 に答える 1