現在の位置: ホーム> 最新記事一覧> date_sunset()とmktime()を使用して、タイムスタンプを手動で構築します

date_sunset()とmktime()を使用して、タイムスタンプを手動で構築します

M66 2025-05-31

PHPでは、 date_sunset()関数を使用して、特定の日付と緯度で日没時間を計算できます。また、 Mktime()を使用してタイムスタンプを手動で構築して、タイムゾーンの違いをより柔軟に処理するか、さらに時間の計算を実行する必要があります。この記事では、実用的な例を使用して、これらの2つの機能を正しく使用する方法を説明します。

ステップ1: mktime()を使用して、タイムスタンプを手動で生成します

一般的に、 mktime()は、特定の日と時間の間、Unixタイムスタンプをすばやく生成するのに役立ちます。たとえば、2025年4月26日の正午12時にタイムスタンプを生成したい場合は、これを行うことができます。

 <?php
$timestamp = mktime(12, 0, 0, 4, 26, 2025);
echo "手動で生成されたタイムスタンプはです: " . $timestamp;
?>

生成された$タイムスタンプは、後続のdate_sunset()への入力として使用できます。

ステップ2: date_sunset()を使用して、日没時間を計算します

date_sunset()は、タイムスタンプを受け入れ、指定された緯度と経度に基づいてその日の日没時間を計算します。基本的な使用法は次のとおりです。

 <?php
$latitude = 34.0522;  // たとえば、ロサンゼルスの緯度
$longitude = -118.2437; // ロサンゼルスの経度

$sunset = date_sunset(
    $timestamp,
    SUNFUNCS_RET_STRING, // フォーマットに戻ります,これが戻り文字列形式です
    $latitude,
    $longitude,
    90, // 高度角,デフォルトはです90度
    0 // GMTオフセット,ここに設定されています0
);

echo "日没の時間(UTC)はい: " . $sunset;
?>

注:獲得する時間はUTC時間であり、ローカルタイムゾーンに従って調整されません。

ステップ3:タイムゾーンの違いを処理します

ローカルタイムゾーンで日没時間を取得したい場合は、 date_sunset()で正しいGMTオフセットを設定したり、手動で変換したりできます。たとえば、北京時間(東第8地区)はGMT+8に対応しています。

 <?php
$gmtOffset = 8; // 東第8地区

$sunset_local = date_sunset(
    $timestamp,
    SUNFUNCS_RET_STRING,
    $latitude,
    $longitude,
    90,
    $gmtOffset
);

echo "日没の時間(現地時間)はい: " . $sunset_local;
?>

このようにして、地元の日没時間を直接取得できます。これは非常に便利です!

ステップ4:完全なアプリケーションケース

日付を入力した後、特定の場所で日没時間を自動的に出力し、表示ページ( M66.NETの天気情報ページなど)にリンクするウィジェットを開発するとします。あなたはこれを行うことができます:

 <?php
$date = '2025-04-26'; // ユーザーが入力した日付
list($year, $month, $day) = explode('-', $date);

// タイムスタンプを作成します
$timestamp = mktime(12, 0, 0, $month, $day, $year);

// 地理的な場所を設定します(たとえば、上海)
$latitude = 31.2304;
$longitude = 121.4737;

// 计算日没の時間(上海はい東第8地区)
$sunset = date_sunset(
    $timestamp,
    SUNFUNCS_RET_STRING,
    $latitude,
    $longitude,
    90,
    8
);

// 出力結果,リンクを添付します
echo "存在する {$date},上海的日没の時間はい: {$sunset}。<br>";
echo "より多くの天気情報をご覧ください,訪問してください <a href='https://m66.net/weather'>m66.net/weather</a>";
?>

この例では、日没時間を正しく計算しただけでなく、 M66.NETへのリンクを組み合わせて、実際に利用可能な小さな関数を形成しました。

要約します

mktime()date_sunset()を組み合わせることにより、任意の日付のサンセットタイムクエリを柔軟に処理でき、ローカルタイムゾーンに簡単に調整できます。気象アプリケーション、旅行の推奨ツール、または簡単な日常情報表示を開発しているかどうかにかかわらず、このテクノロジーは非常に実用的です。