1

日付が冬時間/夏時間と交差することに問題があります..例を参照してください

        $pickUpDate = '2011-10-23';
        $dropOffDate = '2011-10-31';
        $pickUpTime = '09:00';
        $dropOffTime = '09:00';

        Zend_Date::setOptions(array('fix_dst' => false));
        Zend_Date::setOptions(array('fix_dst' => false));
        $pickUpDateTime = new Zend_Date ( $pickUpDate);
        $pickUpDateTime->setTime ( $pickUpTime );
        $dropOffDateTime = new Zend_Date ( $dropOffDate);
        $dropOffDateTime->setTime ( $dropOffTime );


        $dateDiff = ceil(($dropOffDateTime->getTimestamp ( ) - $pickUpDateTime->getTimestamp ( )) / (3600 * 24));
        echo $dateDiff;

Echo は 9 を生成します... 私のタイムゾーンはロンドンですが、夏時間の問題は fix_dst で解決できると思いましたか? タイムゾーンを GMT と UTC に設定しようとしましたが、同じ効果がありますか? 何か案は?

4

1 に答える 1

0

タイムスタンプにはタイムゾーン情報がありません。このユースケースでは、それらを使用しないでください。

2 つの日付の間にZend_Date::subメソッドを試してみてください。これにより、DST が処理されます。

上記のリンクから読んだことから、タイムゾーンも確認してください。

Zend_Date のインスタンス内の実際のタイムゾーンが UTC または GMT に設定されている場合、これら 2 つのタイムゾーンは DST では機能しないため、オプション 'fix_dst' は使用されません。

于 2011-05-30T11:01:46.500 に答える