>백엔드 개발 >PHP 튜토리얼 >PHP에서 월 입력으로 '08'을 입력하면 `date('F')`가 '12월'을 반환하는 이유는 무엇입니까?

PHP에서 월 입력으로 '08'을 입력하면 `date('F')`가 '12월'을 반환하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-05 09:34:02342검색

Why Does `date('F')` Return

PHP에서 숫자를 월 이름으로 변환

PHP를 사용하여 숫자로 된 월 값을 해당 이름으로 변환하려고 할 때 다음 코드는 채용되었습니다:

<code class="php">$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));

echo $monthName;</code>

그러나 예상 월 이름(예: 8월)을 반환하는 대신 "December"로 잘못 표시되었습니다. 추가 조사 결과 $result["month"]가 8로 설정되었고 sprintf 함수가 앞에 0을 추가하여 값이 "08"이 된 것으로 나타났습니다.

권장 솔루션

최신 PHP 버전(>= 5.2)의 경우 선호되는 방법은 날짜/시간 계산에 DateTime 개체를 활용하는 것입니다. 향상된 솔루션은 다음과 같습니다.

<code class="php">$monthNum  = 3;
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March</code>

! 형식 지정 문자는 날짜를 Unix epoch로 재설정하고 m 형식 문자는 앞에 0이 붙은 숫자 월 값을 나타냅니다.

대체 솔루션

이전 PHP 버전의 경우 대체 접근 방식은 mktime()을 사용하여 타임스탬프를 만드는 것입니다.

<code class="php">$monthNum  = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March</code>

약식 월 이름(예: Mar)을 선호하는 경우 'F'를 'M'으로 바꾸면 됩니다. 자세한 형식 지정 옵션은 PHP 매뉴얼 문서에서 확인할 수 있습니다.

위 내용은 PHP에서 월 입력으로 '08'을 입력하면 `date('F')`가 '12월'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.