PHPでは、 date_sunset()関数を使用して、指定された日付と場所の日没時間を取得します。これは、天気予報、日常計画、または地理に関連するアプリケーションの開発に非常に役立ちます。以下に、この機能の使用方法を詳細に説明し、実用的な例を示します。
date_sunset()関数の基本的なプロトタイプは次のとおりです。
date_sunset ( int $timestamp , int $returnFormat = SUNFUNCS_RET_STRING , float $latitude , float $longitude , float $zenith = 90.5 , float $gmt_offset = 0 )
$タイムスタンプ:このパラメーターは、指定されたタイムスタンプを表します。あなたが渡すタイムスタンプが将来の日付である場合、関数は将来の日没の時間を返します。
$ returnFormat :このパラメーターは、返される形式を決定します。デフォルト値はsunfuncs_ret_stringです。これは、return文字列形式(たとえば、「18:30:00」など)を意味します。また、UNIXタイムスタンプ形式を返すか、時間のある配列を返すこともできます。
$緯度と$経度:これらの2つのパラメーターは、観測位置の緯度と経度を指定します。これらのパラメーターを使用すると、PHPは特定の場所で日没時間を計算できます。
$ゼニス:このパラメーターは、太陽の天文学的な位置を表します。デフォルト値は90.5で、天文学的な夕日角を示します。必要に応じてこの値を調整できます。
$ gmt_offset :このパラメーターはGMTの時差を示し、デフォルトは0です。
次のサンプルコードは、 date_sunset()関数を使用して、特定の場所(たとえば、北京)で指定された日付(たとえば「2025-04-25」など)で日没時間を取得する方法を示しています。
<?php
// タイムゾーンを設定します
date_default_timezone_set('Asia/Shanghai');
// 日付と緯度と経度を入力します(北京の緯度と経度)
$date = '2025-04-25';
$latitude = 39.9042; // 北京緯度
$longitude = 116.4074; // 北京経度
// 日付をタイムスタンプに変換します
$timestamp = strtotime($date);
// 使用 date_sunset() 日没の時間を取得します
$sunset = date_sunset($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude);
// 出力日没時間
echo "指定日:$date 夕日はです:$sunset";
?>
タイムゾーンの設定:タイムゾーンをdate_default_timezone_set()関数を介して「アジア/上海」に設定して、時間の計算が正しいことを確認します。
日付と場所:日付(2025年4月25日)と北京の緯度と経度を指定しました。
タイムスタンプを変換する: strtotime()関数を使用して、日付文字列をタイムスタンプに変換します。
Call date_sunset() :この関数は、指定されたタイムスタンプ、緯度、経度、およびその他のパラメーターに基づいて日没時間を計算します。ここでは、文字列形式を返すことを選択します。
出力日没時間:最後に、計算された日没時間を出力します。
上記のコードを実行すると、出力は次のようになります。
指定日:2025-04-25 夕日はです:18:31:00
date_sunset()は、渡す$ returnformatパラメーターに応じて、さまざまな返品形式もサポートしています。Sunfuncs_ret_string(文字列形式)に加えて、次の定数を使用することもできます。
sunfuncs_ret_timestamp :unixタイムスタンプ形式を返します。
sunfuncs_ret_array :日没時間と関連情報を含む配列を返します。
たとえば、 sunfuncs_ret_timestampを使用して、unixタイムスタンプ形式を返します。
$sunset_timestamp = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
echo "Unix タイムスタンプ形式の日没時間:$sunset_timestamp";
date_sunset()関数は、すべての日付で機能しません。指定された日付が日没時間(極地の夏や冬など)を計算できない場合、 Falseが返される場合があります。
日没時間は地理的位置に依存するため、緯度と経度の選択は非常に重要です。