Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 숫자를 월 이름으로 변환하는 방법

PHP에서 숫자를 월 이름으로 변환하는 방법

PHP에서 월을 나타내는 숫자를 월 이름으로 변환하려면 date() 함수와 mktime() 함수를 조합하거나, DateTime::createFromFormat() 메서드를 활용할 수 있습니다. 아래에서 두 가지 방법을 예제와 함께 살펴보겠습니다.

예제 1: date()와 mktime() 함수 사용하기

<?php
    $date = "2019-11-11";
    echo "Displaying date...\n";
    echo "Date = $date";
    $month_name = date("F", mktime(0, 0, 0, 11, 10));
    echo "\nMonth = ".$month_name."\n";
    echo "\nDisplaying updated date...\n";
    echo date('Y-m-d', strtotime($date. ' + 20 days'));
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Displaying date...
Date = 2019-11-11
Month = November
Displaying updated date...
2019-12-01

코드 설명:

  • mktime(0, 0, 0, 11, 10): 시, 분, 초, 월, 일을 인자로 받아 11월 10일에 해당하는 유닉스 타임스탬프를 생성합니다.
  • date("F", ...): 형식 문자 F는 해당 날짜의 월 전체 이름(예: November)을 반환합니다.
  • strtotime($date . ' + 20 days'): 기준 날짜에서 20일 이후의 날짜를 계산하여 새로운 날짜 문자열로 출력합니다.

예제 2: DateTime::createFromFormat() 사용하기

이번에는 객체 지향 방식으로 특정 월 숫자를 월 이름으로 변환해 보겠습니다.

<?php
    $date = "2019-11-11";
    echo "Displaying date...\n";
    echo "Date = $date";
    $month_name = date("F", mktime(0, 0, 0, 11, 10));
    echo "\nMonth = ".$month_name."\n";
    echo "\nDisplaying updated date...\n";
    echo date('Y-m-d', strtotime($date. ' + 20 days'));
    $val = DateTime::createFromFormat('!m', 12);
    $month_name2 = $val->format('F');
    echo "\nMonth = ".$month_name2."\n";
?>

출력 결과

실행 결과는 다음과 같습니다.

Displaying date...
Date = 2019-11-11
Month = November
Displaying updated date...
2019-12-01
Month = December

코드 설명:

  • DateTime::createFromFormat('!m', 12): 형식 지정자 앞의 느낌표(!)는 나머지 시간 구성 요소를 에포크(1970-01-01 00:00:00) 값으로 초기화하고, 월(m)만 12로 설정합니다.
  • $val->format('F'): 생성된 DateTime 객체에서 'F' 형식으로 월 이름(December)을 추출합니다.

추가 팁

축약된 월 이름이 필요하다면 형식 문자 M(예: Nov, Dec)을 사용하면 됩니다. 또한 한국어처럼 현지화된 월 이름을 출력해야 하는 경우에는 PHP 8.1부터 폐기(deprecated)된 strftime() 대신 IntlDateFormatter 클래스를 활용하는 것이 좋습니다.