現在の位置: ホーム> 最新記事一覧> CAL_FROM_JD関数を使用して、天文時間を標準日付に変換する方法は?実践的なスキルを共有します

CAL_FROM_JD関数を使用して、天文時間を標準日付に変換する方法は?実践的なスキルを共有します

gitbox 2025-09-16

1。cal_from_jd ()関数の概要

PHPのCAL_FROM_JD()関数は、PHPの組み込みカレンダー変換関数の1つです。ジュリアンデイ(JD)を指定されたカレンダー形式に変換できます。この関数の構文は次のとおりです。

 <span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-title function_ invoke__">cal_from_jd</span></span><span> ( </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$jd</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$calendar</span></span><span> )
</span></span>

パラメーター説明:

  • $ JD :変換する必要があるジュリアン日。これは、紀元前4713年1月1日の正午からの日数を表すフローティング番号です。

  • $カレンダー:変換されたカレンダータイプを指定します。 PHPは、次のようなさまざまなカレンダーシステムをサポートしています。

    • cal_gregorian (グレゴリアン)

    • Cal_julian (ジュリアンカレンダー)

    • cal_faji (イスラムカレンダー)

    • cal_hebrew (ヘブライ語)

この関数は、年、月、日付などの変換された日付要素を含む連想配列を返します。


2。CAL_FROM_JD ()を使用して変換します

cal_from_jd()関数を使用する方法をよりよく理解するには、特定の例を見てみましょう。 2459373.5のジュリアン日付(2022年7月16日にJD)があり、グレゴリオの日付に変換したいとします。

サンプルコード:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$jd</span></span><span> = </span><span><span class="hljs-number">2459373.5</span></span><span>;  </span><span><span class="hljs-comment">// ジュリアスの日</span></span><span>
</span><span><span class="hljs-variable">$calendar</span></span><span> = CAL_GREGORIAN;  </span><span><span class="hljs-comment">// グレゴリオカレンダー</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">cal_from_jd</span></span><span>(</span><span><span class="hljs-variable">$jd</span></span><span>, </span><span><span class="hljs-variable">$calendar</span></span><span>);

</span><span><span class="hljs-comment">// 出力結果</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"年: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'year'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"月: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'month'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"日: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'day'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

出力:

 <span><span><span class="hljs-section">年: 2022</span></span><span>
</span><span><span class="hljs-section">月: 7</span></span><span>
</span><span><span class="hljs-section">日: 16</span></span><span>
</span></span>

この例では、 CAL_FROM_JD()は、 2022年7月16日にジュリアン2459373.5をグレゴリオの日付に変換します。


3。JDと日付の間の変換を理解します

ジュリアンデイ(JD)は浮動値であり、整数部は紀元前4713年1月1日の正午からの日数を表し、小数部は時刻を表します。たとえば、2459373.5のJDはその日の正午を意味しますが、2459373.25のJDは当日(真夜中)の0:00を意味します。異なるカレンダーシステムの場合、 CAL_FROM_JD()は、特定のルールに従って日付の計算を調整します。

例1:ジュリアンに変換します

ジュリアンカレンダーをジュリアンカレンダーに変換する場合は、次のコードを使用できます。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$jd</span></span><span> = </span><span><span class="hljs-number">2459373.5</span></span><span>;
</span><span><span class="hljs-variable">$calendar</span></span><span> = CAL_JULIAN;  </span><span><span class="hljs-comment">// ジュリアンカレンダー</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">cal_from_jd</span></span><span>(</span><span><span class="hljs-variable">$jd</span></span><span>, </span><span><span class="hljs-variable">$calendar</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"年: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'year'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"月: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'month'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"日: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>[</span><span><span class="hljs-string">'day'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

出力:

 <span><span><span class="hljs-section">年: 2022</span></span><span>
</span><span><span class="hljs-section">月: 7</span></span><span>
</span><span><span class="hljs-section">日: 3</span></span><span>
</span></span>

ジュリアンカレンダーとグレゴリオカレンダーの日付は、ジュリアンカレンダーとグレゴリオカレンダーの間に日付計算に違いがあるため、異なることがわかります。


4。注意すべきこと

  • 精度の問題CAL_FROM_JD()関数の精度は、日付の日数がある限りのみであるため、通常は着信JD値が浮動数であり、フラクショナル部分は日付の出力に影響しません(時間または数分に正確にする必要がない限り)。より正確な時間が必要な場合は、他の時間処理機能と組み合わせて実装できます。

  • 日付範囲:異なるカレンダーシステムには、日付の範囲が異なります。たとえば、ヘブライ語とイスラムのカレンダーの開始日と有効な範囲は、グレゴリオ暦およびジュリアンカレンダーのカレンダーとは異なるため、ニーズに応じて適切なカレンダーシステムを選択する必要があります。

  • エラー処理:着信JD値が有効であることを確認してください。無効なJDが渡された場合、 CAL_FROM_JD()関数がFALSEを返すため、使用するときは例外処理が必要です。