개발자 Q&A

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

2025.07.27 22:03

DateTimeImmutable::sub 메서드에 대한 질문

목록
  • 인증체계장인 2시간 전 2025.07.27 22:03 새글
  • 3
    1
제가 DateTimeImmutable::sub 메서드를 사용하여 날짜를 계산하려고 하지만, 다음과 같은 문제가 발생합니다.

- DateTimeImmutable::sub 메서드는 두 날짜 사이의 시간 차이를 계산할 때, 날짜를 변경하는 메서드인 줄 알았는데, 실제로는 현재 날짜에서 지정된 기간만큼의 시간을 뺀 날짜를 반환하는 메서드라고 합니다.

이 메서드의 사용법에 대해 도움을 요청합니다.

1. DateTimeImmutable::sub 메서드는 현재 날짜에서 지정된 기간만큼의 시간을 뺀 날짜를 반환하는 메서드라는 것을 이해했습니다.

2. 다음의 코드는 DateTimeImmutable::sub 메서드를 사용하여 1일, 1주, 1개월의 시간 차이를 계산하는 예제입니다.

php

$now = new DateTimeImmutable();

$oneDayAgo = $now->sub(new DateInterval('P1D'));

$oneWeekAgo = $now->sub(new DateInterval('P1W'));

$oneMonthAgo = $now->sub(new DateInterval('P1M'));



echo "1일 전: " . $oneDayAgo->format('Y-m-d H:i:s') . "n";

echo "1주 전: " . $oneWeekAgo->format('Y-m-d H:i:s') . "n";

echo "1개월 전: " . $oneMonthAgo->format('Y-m-d H:i:s') . "n";



3. 이 코드에서는 DateInterval 클래스를 사용하여 1일, 1주, 1개월의 시간을 계산합니다.

DateInterval 클래스의 사용법에 대해 알려주실 수 있을까요?

4. DateInterval 클래스는 다음과 같은 속성을 사용하여 시간을 계산할 수 있습니다.

- P1D (1일)
- P1W (1주)
- P1M (1개월)
- P1Y (1년)
- PT1H (1시간)
- PT1M (1분)
- PT1S (1초)

DateInterval 클래스의 속성을 사용하는 방법에 대해 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  2시간 전



    1. DateTimeImmutable::sub 메서드는 현재 날짜에서 지정된 기간만큼의 시간을 뺀 날짜를 반환하는 메서드입니다.

    2. 위에서 제공한 코드는 정상적으로 작동합니다. 현재 날짜에서 1일, 1주, 1개월 전의 날짜를 계산하여 반환합니다.

    3. DateInterval 클래스는 시간 간격을 표현하는 클래스입니다.

    4. DateInterval 클래스는 다음과 같은 속성을 사용하여 시간을 계산할 수 있습니다.

    - P1D : 1일
    - P1W : 1주
    - P1M : 1개월
    - P1Y : 1년
    - PT1H : 1시간
    - PT1M : 1분
    - PT1S : 1초

    예를 들어, 1일 전의 날짜를 계산하려면 DateInterval('P1D')를 사용하면 됩니다.

    #hostingforum.kr
    php
    
    $now = new DateTimeImmutable();
    
    $oneDayAgo = $now->sub(new DateInterval('P1D'));
    
    echo $oneDayAgo->format('Y-m-d H:i:s') . "n";
    
    


    DateInterval 클래스의 속성을 사용하여 시간을 계산할 수 있습니다.

    #hostingforum.kr
    php
    
    $now = new DateTimeImmutable();
    
    $oneDayAgo = $now->sub(new DateInterval('P1D'));
    
    $oneWeekAgo = $now->sub(new DateInterval('P1W'));
    
    $oneMonthAgo = $now->sub(new DateInterval('P1M'));
    
    $oneYearAgo = $now->sub(new DateInterval('P1Y'));
    
    $oneHourAgo = $now->sub(new DateInterval('PT1H'));
    
    $oneMinuteAgo = $now->sub(new DateInterval('PT1M'));
    
    $oneSecondAgo = $now->sub(new DateInterval('PT1S'));
    
    
    
    echo "1일 전: " . $oneDayAgo->format('Y-m-d H:i:s') . "n";
    
    echo "1주 전: " . $oneWeekAgo->format('Y-m-d H:i:s') . "n";
    
    echo "1개월 전: " . $oneMonthAgo->format('Y-m-d H:i:s') . "n";
    
    echo "1년 전: " . $oneYearAgo->format('Y-m-d H:i:s') . "n";
    
    echo "1시간 전: " . $oneHourAgo->format('Y-m-d H:i:s') . "n";
    
    echo "1분 전: " . $oneMinuteAgo->format('Y-m-d H:i:s') . "n";
    
    echo "1초 전: " . $oneSecondAgo->format('Y-m-d H:i:s') . "n";
    
    

    2025-07-27 22:05

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

검색

게시물 검색