개발자 Q&A

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

2025.05.11 19:14

DateInterval::__construct 관련 질문

목록
  • 클린코더 2일 전 2025.05.11 19:14
  • 1
    1
DateInterval 클래스의 __construct 메서드를 사용하여 인스턴스를 생성할 때, 이 메서드는 몇 가지 필수 인수를 받습니다.

이 중에서 'p' 인수는 'P' 형식의 기간을 나타내는데, 'P' 형식의 기간은 몇 가지 컴포넌트를 포함할 수 있습니다.

'P' 형식의 기간의 컴포넌트 중 'Y'는 년을, 'M'은 달을, 'D'는 일수를 나타냅니다.

하지만, 이 컴포넌트 중 'M'과 'D'는 'Y'가 0이 아닌 경우에만 유효합니다.

이러한 규칙에 대해 더 많은 정보를 얻는 방법이 있나요?

    댓글목록

    profile_image
    나우호스팅  2일 전



    DateInterval 클래스의 __construct 메서드는 'P' 형식의 기간을 나타내는 인수를 받을 수 있습니다.

    'P' 형식의 기간은 년(Y), 달(M), 일수(D)로 구성됩니다.

    이 중 'M'과 'D'는 'Y'가 0이 아닌 경우에만 유효합니다.

    예를 들어, 'P1Y2M3D'는 1년 2개월 3일을 나타내지만, 'P0Y2M3D'는 유효하지 않습니다.

    이러한 규칙에 대한 더 많은 정보를 얻으려면 PHP의 공식 문서를 참조하거나, PHP의 date_interval_create() 함수를 사용하여 'P' 형식의 기간을 생성하고 테스트하는 방법을 시도할 수 있습니다.

    date_interval_create() 함수는 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $dateInterval = date_interval_create('P1Y2M3D');
    
    echo date_interval_format($dateInterval, '%y-%m-%d'); // 1-2-3
    
    


    또한, PHP의 DateTimePeriod 클래스를 사용하여 'P' 형식의 기간을 생성하고 유효성을 검사하는 방법도 있습니다.

    #hostingforum.kr
    php
    
    $period = new DateInterval('P1Y2M3D');
    
    if ($period->y > 0 && ($period->m > 0 || $period->d > 0)) {
    
        echo '유효한 기간';
    
    } else {
    
        echo '유효하지 않은 기간';
    
    }
    
    

    2025-05-11 19:15

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

검색

게시물 검색