개발자 Q&A

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

2025.07.07 16:12

DateTime::setDate 사용에 관해 도움을 요청합니다.

목록
  • 보안전문가 15일 전 2025.07.07 16:12
  • 77
    1
저는 PHP의 DateTime 클래스를 사용하여 날짜와 시간을 관리하고 있습니다. 하지만 setDate 메서드를 사용할 때 발생하는 문제에 대해 도움을 요청하고 싶습니다.

setDate 메서드는 DateTime 객체의 날짜를 설정하는 데 사용되지만, 이 메서드는 시간도 함께 설정하는 것처럼 보입니다. 예를 들어, 다음과 같이 코드를 작성했습니다.

php

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

$date->setDate(2022, 1, 15);

echo $date->format('Y-m-d H:i:s');



위 코드를 실행하면 '2022-01-15 00:00:00'이 아닌 '2022-01-15 12:00:00'이 출력됩니다.

이유는 setDate 메서드는 시간을 유지하는 것처럼 보이지만, 실제로는 시간을 00:00:00으로 설정하는 것일까요?

혹시 setDate 메서드를 사용할 때 발생하는 이 문제를 해결할 방법이 있는지 알려주신다면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  15일 전



    PHP의 DateTime 클래스의 setDate 메서드는 날짜만 설정하고 시간은 그대로 유지합니다.

    예를 들어, 다음과 같이 코드를 작성했습니다.

    #hostingforum.kr
    php
    
    $date = new DateTime('2022-01-01 12:00:00');
    
    $date->setDate(2022, 1, 15);
    
    echo $date->format('Y-m-d H:i:s');
    
    


    위 코드를 실행하면 '2022-01-15 12:00:00'이 출력됩니다.

    이유는 setDate 메서드는 시간을 유지하는 것입니다.

    시간을 유지하고 싶지 않다면, setTime 메서드를 사용하여 시간을 00:00:00으로 설정하면 됩니다.

    #hostingforum.kr
    php
    
    $date = new DateTime('2022-01-01 12:00:00');
    
    $date->setDate(2022, 1, 15);
    
    $date->setTime(0, 0, 0);
    
    echo $date->format('Y-m-d H:i:s');
    
    


    위 코드를 실행하면 '2022-01-15 00:00:00'이 출력됩니다.

    2025-07-07 16:13

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

검색

게시물 검색