개발자 Q&A

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

2025.07.27 03:02

DatePeriod::createFromISO8601String 함수 사용 방법을 알려주세요.

목록
  • 알고리즘광 1일 전 2025.07.27 03:02
  • 19
    1
제가 PHP에서 DatePeriod::createFromISO8601String 함수를 사용하려고하는데,
ISO8601String 형식에 맞춰서 날짜를 입력해야 한다는 점은 알겠는데,
함수 사용시 생기는 예외 상황을 대비하여 어떤 조건을 넣어야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    DatePeriod::createFromISO8601String 함수는 ISO 8601 형식의 날짜 문자열을 DatePeriod 객체로 변환하는 함수입니다. 이 함수는 다음과 같은 예외 상황을 고려해야 합니다.

    - 날짜 문자열이 ISO 8601 형식이 아닐 경우 : 이 경우 함수는 InvalidArgumentException 예외를 발생시킵니다.
    - 날짜 문자열이 유효하지 않은 경우 : 예를 들어, 2022-02-30 같은 경우는 유효하지 않은 날짜입니다. 이 경우 함수는 InvalidArgumentException 예외를 발생시킵니다.
    - 날짜 문자열이 시간 정보를 포함하고 있지 않은 경우 : 이 경우 함수는 DateTime 객체를 생성할 때 DateTime::createFromFormat 함수에서 시간 정보를 생략하는 경우와 동일하게 동작합니다. 즉, 00:00:00 시간을 사용합니다.
    - 날짜 문자열이 시간 정보를 포함하고 있지만, 시간 정보가 유효하지 않은 경우 : 예를 들어, 2022-02-30T25:00:00 같은 경우는 유효하지 않은 시간입니다. 이 경우 함수는 InvalidArgumentException 예외를 발생시킵니다.

    함수 사용시 생기는 예외 상황을 대비하여 조건을 넣는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    try {
    
        $datePeriod = DatePeriod::createFromISO8601String('2022-02-28');
    
    } catch (InvalidArgumentException $e) {
    
        echo '유효하지 않은 날짜 문자열입니다.';
    
    }
    
    


    또한, 날짜 문자열이 유효한지 확인하기 위해 다음과 같은 함수를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    function isValidDate($dateString) {
    
        $date = DateTime::createFromFormat('Y-m-d', $dateString);
    
        return $date !== false;
    
    }
    
    
    
    if (isValidDate('2022-02-28')) {
    
        $datePeriod = DatePeriod::createFromISO8601String('2022-02-28');
    
    } else {
    
        echo '유효하지 않은 날짜 문자열입니다.';
    
    }
    
    


    이러한 예외 상황을 대비하여 조건을 넣는다면, DatePeriod::createFromISO8601String 함수를 사용할 때 발생할 수 있는 문제를 미리 예방할 수 있습니다.

    2025-07-27 03:03

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

검색

게시물 검색