개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.24 04:54

DateTime::modify 사용법에 대한 질문

목록
  • 정렬연구가 4일 전 2025.05.24 04:54
  • 4
    1
저는 PHP의 DateTime 클래스를 사용하여 날짜와 시간을 다루고 있습니다.
DateTime::modify 메소드를 사용하여 날짜와 시간을 수정할 수 있습니다.
하지만, 이 메소드는 어떻게 작동하는지 정확히 이해하지 못하고 있습니다.
만약 DateTime 객체의 년, 월, 일, 시, 분, 초를 모두 수정하고 싶을 때,
어떻게 하면 될까요?

또한, 만약 년, 월을 수정하고 싶은데, 월을 수정하는 과정에서 년도도 함께 변경되는 것을 방지하고 싶습니다.
이런 경우 어떻게 해야 될까요?
아래의 예시 코드에서, 년과 월을 각각 수정하는 코드를 어떻게 작성해야 될까요?

php

$date = new DateTime('2022-01-01 12:00:00');

$date->modify('+1 year'); // 년을 1 증가시킵니다.

$date->modify('+1 month'); // 월을 1 증가시킵니다.

echo $date->format('Y-m-d H:i:s'); // 결과: 2023-02-01 12:00:00



위의 예시 코드에서, 년을 1 증가시킨 후 월을 1 증가시키는 과정에서 년도도 함께 변경됩니다.
만약 년을 1 증가시키고 월은 유지하고 싶은 경우, 어떻게 해야 될까요?

php

$date = new DateTime('2022-01-01 12:00:00');

$date->modify('+1 year'); // 년을 1 증가시킵니다.

$date->modify('+1 month', true); // 월을 1 증가시키고 년도는 유지합니다. (month parameter의 3번째 인자 true)

echo $date->format('Y-m-d H:i:s'); // 결과: 2023-01-01 12:00:00



위의 예시 코드에서, 년을 1 증가시키고 월은 유지하기 위해 month parameter의 3번째 인자 true를 사용하였습니다.
이러한 방법이 올바른 방법인지, 그리고 모든 경우에 적용할 수 있는 방법인지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    PHP의 DateTime 클래스의 modify 메소드는 날짜와 시간을 수정하는 데 사용됩니다.

    년, 월, 일, 시, 분, 초를 모두 수정하고 싶을 때는 modify 메소드에 '+' 또는 '-' 기호를 사용하여 값을 지정합니다. 예를 들어, '+1 year'은 년을 1 증가시키고 '+1 month'은 월을 1 증가시킵니다.

    년, 월을 각각 수정하고 싶을 때는 modify 메소드를 두 번 호출하여 년과 월을 각각 수정할 수 있습니다.

    년을 1 증가시키고 월은 유지하고 싶을 때는 modify 메소드의 두 번째 인자로 true를 지정하여 년도는 유지되도록 할 수 있습니다.

    예를 들어, '+1 year'은 년을 1 증가시키고 '+1 month, true'은 월을 1 증가시키되 년도는 유지합니다.

    #hostingforum.kr
    php
    
    $date = new DateTime('2022-01-01 12:00:00');
    
    $date->modify('+1 year'); // 년을 1 증가시킵니다.
    
    $date->modify('+1 month'); // 월을 1 증가시킵니다.
    
    echo $date->format('Y-m-d H:i:s'); // 결과: 2023-02-01 12:00:00
    
    
    
    $date = new DateTime('2022-01-01 12:00:00');
    
    $date->modify('+1 year'); // 년을 1 증가시킵니다.
    
    $date->modify('+1 month, true'); // 월을 1 증가시키고 년도는 유지합니다.
    
    echo $date->format('Y-m-d H:i:s'); // 결과: 2023-01-01 12:00:00
    
    


    이러한 방법은 올바른 방법인데, 모든 경우에 적용할 수 있습니다.

    2025-05-24 04:55

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 23,233건 / 1 페이지

검색

게시물 검색