ホームページ  >  に質問  >  本文

サマータイム調整時の日付差(シフト計算に使用する関数)の計算方法を教えてください。

指定された日にどのシフトが働いているかを判断する次の関数があります。

リーリー

これは次のように呼ばれます:

リーリー

夏時間をまたがらない 2 つの日付を使用すると、正常に動作するようです。たとえば、3/14/2023 と 6/22/23 は 1 (正しい) を返します。ただし、2023 年 3 月 10 日と 23 年 6 月 22 日のように、夏時間が発生する日にまたがる場合は、4 が返されます。これは間違ったシフトです。

夏時間を気にせずに動作させるにはどうすればよいですか?

P粉919464207P粉919464207370日前470

全員に返信(1)返信します

  • P粉323224129

    P粉3232241292023-09-16 12:53:26

    これは、計算が「日数」ではなく 1 日の秒数に基づいているためです。すべてではありませんが、ほとんどのタイムゾーンで、時間がわずかにずれるため、境界線を越えてコンバージョン数が変化することは間違いありません。また、@aaronfc のタイムゾーンがこのように機能しないか、デフォルトのタイムゾーンが UTC またはその他の静的オフセットに設定されている可能性もあります。

    DateTime ライブラリは確実に計算できます:

    リーリー

    出力:

    リーリー

    また、関数が任意の文字列をデコードする方法を知る必要がないように、explode(',', $sequence) を関数の外に移動することをお勧めします。

    返事
    0
  • キャンセル返事