현재 위치: > 최신 기사 목록> cal_from_jd 함수를 사용하여 천문 시간을 표준 날짜로 변환하는 방법은 무엇입니까? 실용적인 기술을 공유하십시오

cal_from_jd 함수를 사용하여 천문 시간을 표준 날짜로 변환하는 방법은 무엇입니까? 실용적인 기술을 공유하십시오

gitbox 2025-09-16

1. cal_from_jd () 함수의 개요

PHP의 CAL_FROM_JD () 함수는 PHP의 내장 캘린더 변환 기능 중 하나입니다. Julian Day (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 () 함수를 사용하는 방법을 더 잘 이해하려면 특정 예를 살펴 보겠습니다. Julian 날짜가 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 일에 Julian Day 2459373.5를 그레고리 데이트로 변환합니다.


3. JD와 날짜 사이의 전환을 이해하십시오

Julian Day (JD)는 부동 가치이며, 정수 부분은 기원전 4713 년 1 월 1 일 정오 이후의 일 수를 나타내고 소수 부분은 시간을 나타냅니다. 예를 들어, 2459373.5의 JD는 당일 정오를 의미하는 반면 2459373.25의 JD는 그 날 (자정)의 0:00을 의미합니다. 다른 캘린더 시스템의 경우 Cal_from_jd ()는 특정 규칙에 따라 날짜 계산을 조정합니다.

예 1 : 줄리안으로 전환

Julian 달력을 Julian Calendar로 변환하려면 다음 코드를 사용할 수 있습니다.

 <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 값은 일반적으로 부동 수단이므로 분수 부품은 날짜의 출력에 영향을 미치지 않습니다 (시간 또는 분까지 정확하지 않으면). 보다 정확한 시간이 필요한 경우 다른 시간 처리 기능과 함께 구현할 수 있습니다.

  • 날짜 범위 : 달력 시스템마다 다른 날짜가 다릅니다. 예를 들어, 히브리어 및 이슬람 달력의 시작 날짜와 유효한 범위는 Gregorian 달력 및 Julian 달력의 범위와 다르므로 필요에 따라 적절한 달력 시스템을 선택해야합니다.

  • 오류 처리 : 들어오는 JD 값이 유효한지 확인하십시오. 유효하지 않은 JD가 전달되면 cal_from_jd () 함수가 False를 반환하므로 사용할 때 예외 처리가 필요합니다.