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

PHP에서 날짜에 일수 추가하는 방법 – strtotime과 date_add 완벽 정리

PHP로 개발하다 보면 특정 날짜에 며칠을 더해야 하는 경우가 자주 발생합니다. 예를 들어, 만료일 계산이나 예약 시스템에서 마감일을 구할 때 유용하게 사용됩니다. 이 글에서는 PHP에서 $date 변수에 일수를 추가하는 대표적인 두 가지 방법을 소개합니다.

방법 1: strtotime() 함수 활용하기

strtotime() 함수는 사람이 읽기 쉬운 날짜 문자열을 Unix 타임스탬프로 변환해 줍니다. 문자열에 '+ N days' 형태로 기간을 붙여주면 손쉽게 원하는 날짜를 계산할 수 있습니다.

예제 코드

<?php
   $date = "2019-11-11";
   echo "날짜 출력...\n";
   echo "Date = $date";
   echo "\n변경된 날짜 출력...\n";
   echo date('Y-m-d', strtotime($date . ' + 20 days'));
?>

실행 결과

Date = 2019-11-11
2019-12-01

위 코드는 '2019-11-11'이라는 날짜에 20일을 더하여 '2019-12-01'을 반환합니다. strtotime()의 장점은 별도 객체 생성 없이 한 줄로 처리할 수 있다는 점입니다.

방법 2: date_create()와 date_add() 함수 활용하기

객체 지향적인 방식을 선호한다면 DateTime 클래스를 사용하는 것이 좋습니다. date_create()로 날짜 객체를 만들고, date_add()로 기간을 더한 뒤 date_format()으로 원하는 형식으로 출력할 수 있습니다.

예제 코드

<?php
   $date = date_create("2019-11-11");
   echo "날짜 출력...";
   echo date_format($date, "Y/m/d");
   date_add($date, date_interval_create_from_date_string("25 days"));
   echo "\n변경된 날짜 출력...";
   echo "\n" . date_format($date, "Y/m/d");
?>

실행 결과

Displaying Date...2019/11/11
Displaying Updated Date...
2019/12/06

위 코드는 '2019-11-11'에 25일을 더해 '2019/12/06'을 출력합니다. date_interval_create_from_date_string()을 사용하면 일(day)뿐만 아니라 주(week), 개월(month), 연(year) 단위도 자유롭게 지정할 수 있습니다.

두 방법 비교 및 정리

strtotime() 방식은 간단한 날짜 계산에 적합하고 코드가 짧습니다. 반면 date_create()/date_add() 방식은 DateTime 객체를 다루므로 시간대(timezone) 설정, 날짜 차이 계산 등 복잡한 작업으로 확장하기에 유리합니다.

  • 간단한 일수 계산 → date('Y-m-d', strtotime($date . ' + N days'))
  • 복잡한 날짜 처리나 재사용이 필요한 경우 → date_create() + date_add()

상황에 맞는 방법을 선택하여 효율적으로 날짜를 처리해 보시기 바랍니다.