date_sun_info
(PHP 5 >= 5.1.2, PHP 7)
date_sun_info — 日の出/日の入り時刻と薄明かり (twilight) の開始/終了時刻の情報を含む配列を返す
説明
date_sun_info
( int $timestamp
, float $latitude
, float $longitude
) : array|false
パラメータ
timestamp
- Unixタイムスタンプ。
latitude
- 緯度を表す度数。
longitude
- 経度を表す度数。
返り値
成功した場合に配列、失敗した場合に false
を返します。
配列の構造の詳細は、以下のリストのとおりです
sunrise
- 日の出のタイムスタンプ (天頂角 = 90°50' )
sunset
- 日の入りのタイムスタンプ (天頂角 = 90°35' )
transit
- 太陽が天頂に達するタイムスタンプ。 つまり、もっとも上部に達した時刻です。
civil_twilight_begin
- 夜明けの始まり(天頂角 = 96°)
sunrise
の時刻に終了します。 civil_twilight_end
- 夕暮れの終わり(天頂角 = 96°)
sunset
の時刻に始まります。 nautical_twilight_begin
- 航海上の夜明け (天頂角 = 102°)
civil_twilight_begin
に終了します。 nautical_twilight_end
- 航海上の夕暮れ (天頂角 = 102°)
civil_twilight_end
の時刻に始まります。 astronomical_twilight_begin
- 天文学上の夜明け (天頂角 = 108°)
nautical_twilight_begin
に終了します。 astronomical_twilight_end
- 天文学上の夕暮れ (天頂角 = 108°)
nautical_twilight_end
の時刻に始まります。
配列の要素の値は、UNIXタイムスタンプ、または
太陽が天頂より一日中下にある場合、false
です。
また、一日中天頂より上にある場合、 true
です。
例
例1 date_sun_info() の例
<?php$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);foreach ($sun_info as $key => $val) { echo "$key: " . date("H:i:s", $val) . "\n";}?>
上の例の出力は以下となります。
sunrise: 05:52:11 sunset: 15:41:21 transit: 10:46:46 civil_twilight_begin: 05:24:08 civil_twilight_end: 16:09:24 nautical_twilight_begin: 04:52:25 nautical_twilight_end: 16:41:06 astronomical_twilight_begin: 04:21:32 astronomical_twilight_end: 17:12:00
例2 Polar night
<?phpvar_dump(date_sun_info(strtotime("2017-12-21"), 90, 0));?>
上の例の出力は以下となります。
array(9) { ["sunrise"]=> bool(false) ["sunset"]=> bool(false) ["transit"]=> int(1513857490) ["civil_twilight_begin"]=> bool(false) ["civil_twilight_end"]=> bool(false) ["nautical_twilight_begin"]=> bool(false) ["nautical_twilight_end"]=> bool(false) ["astronomical_twilight_begin"]=> bool(false) ["astronomical_twilight_end"]=> bool(false) }
例3 Midnight sun
<?phpvar_dump(date_sun_info(strtotime("2017-06-21"), 90, 0));?>
上の例の出力は以下となります。
array(9) { ["sunrise"]=> bool(true) ["sunset"]=> bool(true) ["transit"]=> int(1498046510) ["civil_twilight_begin"]=> bool(true) ["civil_twilight_end"]=> bool(true) ["nautical_twilight_begin"]=> bool(true) ["nautical_twilight_end"]=> bool(true) ["astronomical_twilight_begin"]=> bool(true) ["astronomical_twilight_end"]=> bool(true) }