現在の位置: ホーム> 最新記事一覧> date_sunset()およびdate_sunrise()は、日の長さを取得します

date_sunset()およびdate_sunrise()は、日の長さを取得します

M66 2025-05-31

PHPでは、 Date_sunset()およびdate_sunrise()関数を通じて、日没と日の出の時間を1日に取得できます。これらの2つの関数の返品値を組み合わせることで、日中の期間を計算できます。この記事では、この目標を達成する方法を示します。

1。はじめに

  • date_sunset()関数は、特定の日付と位置の日没時間を取得するために使用されます。

  • date_sunrise()関数は、特定の日付と場所の日の出時間を取得するために使用されます。

これらの関数の返品値はUNIXタイムスタンプであり、それらに基づいて昼間の期間を計算できます。緯度と経度、および日付パラメーターを適切に設定することにより、世界中のどこでも昼間の期間を取得できます。

2。関数パラメーター

date_sunset()およびdate_sunrise()にはいくつかのパラメーターがあります。最も一般的に使用される2つのパラメーターは次のとおりです。

  • タイムスタンプ:タイムスタンプ、日付と時刻を表し、通常は時間()を使用して現在の時間を取得します。

  • 緯度:緯度、地理的位置の北緯(正)または南緯(負)を示しています。

  • 経度:経度、地理的位置の東部経度(正)または西部経度(陰性)を示しています。

  • ゼニス:日の出と日没の太陽の高さの角度(通常は90.5度)を計算するために使用されます。

3。サンプルコード

次に、簡単な例で日中の日の期間を計算しましょう。

 <?php

// 設定日と場所パラメーターを設定します
$latitude = 40.7128;  // ニューヨークの緯度
$longitude = -74.0060; // ニューヨークの経度
$timestamp = time();   // 現在のタイムスタンプ

// 日の出と日没の時間を手に入れましょう(返品値はです Unix タイムスタンプ)
$sunrise = date_sunrise($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
$sunset = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);

// 日光の期間を計算します(秒単位のユニット)
$day_length = $sunset - $sunrise;

// 時間と数分に変換します
$hours = floor($day_length / 3600);
$minutes = floor(($day_length % 3600) / 60);

// 出力結果
echo "昼間:$hours 時間 $minutes 分\n";

?>

コードの説明

  1. パラメーターの設定:ニューヨークの緯度と経度を設定し(N 40.7128°N、74.0060°W)、および現在のタイムスタンプを設定します。

  2. date_sunrise()およびdate_sunset()を呼び出します:これらの2つの関数は、それぞれ日の出と日没のタイムスタンプを返します。

  3. 日中の期間を計算する:日の出のタイムスタンプから日没のタイムスタンプを差し引くことにより、昼間の期間を取得できます(秒)。

  4. コンバージョン期間:数秒を数時間と分に変換して、出力を簡単にします。

4。結果

このコードを実行すると、現在の日付は2025年4月26日であり、ニューヨークの昼間の期間が13時間15分である可能性があると仮定します。特定の値は、その日の日付と地理的位置によって異なります。

5.異なるタイムゾーンまたは場所に調整します

他の場所の昼間の期間を計算する場合は、異なる緯度と長期に応じて対応する値を設定できます。たとえば、北京の昼間の期間を計算する場合は、緯度と経度を次のように調整できます。

 $latitude = 39.9042;  // 北京の緯度
$longitude = 116.4074; // 北京の経度

同じ原則が他の都市にも当てはまります。緯度と経度を変更するだけです。

6。注意すべきこと

  • date_sunset()およびdate_sunrise()によって返されるタイムスタンプは、UTC(調整されたユニバーサル時間)に基づいているため、現地時間を表示する必要がある場合は、タイムゾーンに従って変換してください。

  • これらの2つの関数は、タイムスタンプ、フォーマットされた文字列などを含む複数の返品形式もサポートしています。必要に応じてDate_sunset()およびdate_sunrise()の2番目のパラメーターを調整して、返品値の形式を変更できます。