개요

PHP로 개발할 때 기준 날짜 기준으로 이전 날짜, 다음 날짜를 구하는 방법을 정리해보겠습니다.
날짜 계산하는 방법은 여러가지 있지만 이번에는 [$obj->sub(new DateInterval(“P1D”));] 방식을 이용해보겠습니다.

핵심 기능

이전 날짜를 계산할 때는 $obj->sub();
다음 날짜를 계산할 때는 $obj->add();

  <?php  
    $prev_date_obj->sub(new DateInterval("P1D"));
    $next_date_obj->add(new DateInterval("P1D"));
?>
  

이전 날짜, 다음 날짜

기준일의 1일전, 1일후 날짜를 구해보겠습니다.

  <?php    
    $check_date = "2023-01-06";

    $prev_date_obj = new DateTime($check_date);
    $prev_date_obj->sub(new DateInterval("P1D"));
    $prev_date =  $prev_date_obj->format("Y-m-d");

    $next_date_obj = new DateTime($check_date);
    $next_date_obj->add(new DateInterval("P1D"));
    $next_date =  $next_date_obj->format("Y-m-d");

    echo("prev_date : ".$prev_date."<br />");
    echo("check_date : ".$check_date."<br />");
    echo("next_date : ".$next_date."<br />");
?>
  
⁃ prev_date : 2023-01-05
⁃ check_date : 2023-01-06

기준일의 3일전, 3일후 날짜를 구해보겠습니다.
  <?php    
    $check_date = "2023-01-06";

    $prev_date_obj = new DateTime($check_date);
    $prev_date_obj->sub(new DateInterval("P3D"));
    $prev_date =  $prev_date_obj->format("Y-m-d");

    $next_date_obj = new DateTime($check_date);
    $next_date_obj->add(new DateInterval("P3D"));
    $next_date =  $next_date_obj->format("Y-m-d");

    echo("prev_date : ".$prev_date."<br />");
    echo("check_date : ".$check_date."<br />");
    echo("next_date : ".$next_date."<br />");
?>
  
⁃ prev_date : 2023-01-03
⁃ check_date : 2023-01-06
⁃ next_date : 2023-01-09

이전 주, 다음 주

기준일의 1주일 전, 1주일 후 날짜를 구해보겠습니다.

  <?php    
    $check_date = "2023-01-06";

    $prev_date_obj = new DateTime($check_date);
    $prev_date_obj->sub(new DateInterval("P1W"));
    $prev_date =  $prev_date_obj->format("Y-m-d");

    $next_date_obj = new DateTime($check_date);
    $next_date_obj->add(new DateInterval("P1W"));
    $next_date =  $next_date_obj->format("Y-m-d");

    echo("prev_date : ".$prev_date."<br />");
    echo("check_date : ".$check_date."<br />");
    echo("next_date : ".$next_date."<br />");
?>
  
⁃ prev_date : 2022-12-30
⁃ check_date : 2023-01-06
⁃ next_date : 2023-01-13

이전 달, 다음 달

기준일의 1달 전, 1달 후 날짜를 구해보겠습니다.

  <?php    
    $check_date = "2023-01-06";

    $prev_date_obj = new DateTime($check_date);
    $prev_date_obj->sub(new DateInterval("P1M"));
    $prev_date =  $prev_date_obj->format("Y-m-d");

    $next_date_obj = new DateTime($check_date);
    $next_date_obj->add(new DateInterval("P1M"));
    $next_date =  $next_date_obj->format("Y-m-d");

    echo("prev_date : ".$prev_date."<br />");
    echo("check_date : ".$check_date."<br />");
    echo("next_date : ".$next_date."<br />");
?>
  
⁃ prev_date : 2022-12-06
⁃ check_date : 2023-01-06
⁃ next_date : 2023-02-06

문서 업데이트 내역

날짜 내용
2023-01-07 문서 최초 생성