現在の位置: ホーム> 最新記事一覧> PHPでdate_sunset()関数を使用して指定された日付の日没時間を取得するにはどうすればよいですか?

PHPでdate_sunset()関数を使用して指定された日付の日没時間を取得するにはどうすればよいですか?

M66 2025-06-29

PHPでは、 date_sunset()関数を使用して、指定された日付と場所の日没時間を取得します。これは、天気予報、日常計画、または地理に関連するアプリケーションの開発に非常に役立ちます。以下に、この機能の使用方法を詳細に説明し、実用的な例を示します。

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";
?>

解析コード:

  1. タイムゾーンの設定:タイムゾーンをdate_default_timezone_set()関数を介して「アジア/上海」に設定して、時間の計算が正しいことを確認します。

  2. 日付と場所:日付(2025年4月25日)と北京の緯度と経度を指定しました。

  3. タイムスタンプを変換するstrtotime()関数を使用して、日付文字列をタイムスタンプに変換します。

  4. Call date_sunset() :この関数は、指定されたタイムスタンプ、緯度、経度、およびその他のパラメーターに基づいて日没時間を計算します。ここでは、文字列形式を返すことを選択します。

  5. 出力日没時間:最後に、計算された日没時間を出力します。

出力結果:

上記のコードを実行すると、出力は次のようになります。

 指定日: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が返される場合があります。

  • 日没時間は地理的位置に依存するため、緯度と経度の選択は非常に重要です。