【PHP8.x】timezone_transitions_get関数の使い方

作成日: 更新日:

timezone_transitions_get関数は、指定されたタイムゾーンにおける時刻の移行情報を取得する関数です。この関数を使用すると、夏時間(サマータイム)の開始や終了、あるいは標準時間への変更など、タイムゾーンのオフセットが変化するすべての時点に関する詳細なデータを得ることができます。

具体的には、タイムゾーンを識別する文字列、またはDateTimeZoneオブジェクトを引数として受け取ります。さらに、オプションとして、情報を取得したい期間の開始時刻と終了時刻をUNIXタイムスタンプ形式で指定することも可能です。これにより、特定の期間に限定して移行情報を調べることができます。

戻り値は配列形式で、各要素がタイムゾーンの移行イベント一つ一つを表します。それぞれのイベントは連想配列となっており、UNIXタイムスタンプ(ts)、移行が起こる日付と時刻(time)、協定世界時(UTC)からのオフセット秒数(offset)、夏時間かどうかを示す真偽値(isdst)、タイムゾーンの略称(abbr)といった情報が含まれています。

この関数は、過去や未来の特定の期間におけるタイムゾーンの複雑な挙動を正確に把握したい場合や、国際的なアプリケーションで時間計算の精度を高める必要がある場合に非常に役立ちます。例えば、特定の地域の過去のイベントが夏時間中に発生したのか、そうでないのかを判別する際などに利用できます。

基本的な使い方

構文(syntax)

timezone_transitions_get(new DateTimeZone('Europe/Berlin'));

引数(parameters)

DateTimeZone $object, int $timestampBegin = -9223372036854775808, int $timestampEnd = 9223372036854775807

  • DateTimeZone $object: タイムゾーン情報を取得したい DateTimeZone オブジェクト
  • int $timestampBegin = -9223372036854775808: タイムゾーンの遷移を調べる開始時刻のUnixタイムスタンプ (デフォルトは最小値)
  • int $timestampEnd = 9223372036854775807: タイムゾーンの遷移を調べる終了時刻のUnixタイムスタンプ (デフォルトは最大値)

戻り値(return)

array|false

指定されたタイムゾーンにおける、夏時間への切り替わりや元に戻る日時の情報を含む配列、またはタイムゾーン情報が無効な場合に false を返します。

【PHP8.x】timezone_transitions_get関数の使い方 | いっしー@Webエンジニア