(PHP 5 >= 5.1.2, PHP 7, PHP 8)
date_sun_info — 日の出/日の入り時刻と薄明かり (twilight) の開始/終了時刻の情報を含む配列を返す
$timestamp
, float $latitude
, float $longitude
): array
timestamp
Unixタイムスタンプ。
latitude
緯度を表す度数。
longitude
経度を表す度数。
成功した場合に配列、失敗した場合に false
を返します。
配列の構造の詳細は、以下のリストのとおりです
sunrise
sunset
transit
civil_twilight_begin
sunrise
の時刻に終了します。
civil_twilight_end
sunset
の時刻に始まります。
nautical_twilight_begin
civil_twilight_begin
に終了します。
nautical_twilight_end
civil_twilight_end
の時刻に始まります。
astronomical_twilight_begin
nautical_twilight_begin
に終了します。
astronomical_twilight_end
nautical_twilight_end
の時刻に始まります。
配列の要素の値は、UNIXタイムスタンプ、または
太陽が天頂より一日中下にある場合、false
です。
また、一日中天頂より上にある場合、 true
です。
バージョン | 説明 |
---|---|
7.2.0 | ローカルの昼ではなく、 夜中に関する計算結果が修正されました。 これによって、結果が少し変わります。 |
例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 極夜の例
<?php
var_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
<?php
var_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) }