>백엔드 개발 >PHP 튜토리얼 >내 PHP ISO 날짜 정규 표현식이 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

내 PHP ISO 날짜 정규 표현식이 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-29 12:22:10419검색

Why is My PHP ISO Date Regular Expression Failing, and How Can I Fix It?

ISO 날짜 패턴 일치가 실패하는 이유는 무엇입니까?

제공된 정규 표현식이 전달 누락으로 인해 ISO 스타일 날짜와 올바르게 일치하지 않습니다. 패턴의 시작과 끝 부분에 슬래시("/")가 있습니다. 이러한 구분 기호는 PHP의 정규식 구문에서 매우 중요합니다. 수정된 패턴은 다음과 같습니다.

/^(?P<year>[0-9]{4})-(?P<month>[0-9]{2})-(?P<day>[0-9]{2}) (?P<hour>[1-2]{1}\d{1}):(?P<min>[0-5]{1}\d{1}):(?P<sec>[0-5]{1}\d{1})$/

이 패턴은 연도, 월, 일, 시, 분, 초에 대한 6개의 캡처 그룹을 정의합니다.

대체 접근 방식: DateTime 사용 클래스

정규식을 사용하는 것도 옵션일 수 있지만, 더 우아한 해결책은 PHP의 DateTime을 사용하는 것입니다. class:

function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

이 함수는 날짜 문자열과 선택적 형식을 허용합니다. createFromFormat 메소드를 사용하여 DateTime 객체를 생성하고 생성된 객체가 유효하고 원래 날짜와 일치하는지 확인합니다.

validateDate 함수는 날짜를 검증하는 더욱 강력하고 다양한 방법을 제공합니다. 다양한 형식을 지원하며 다양한 세부 수준으로 날짜를 확인할 수 있습니다.

위 내용은 내 PHP ISO 날짜 정규 표현식이 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.