yyyy-mm-ddThh:mm:ss
형식의 날짜와 시간을 확인하는 정규식이 필요합니다. T는 날짜와 시간 사이의 단순한 기호입니다. 도움날짜와 시간을 나타내는 PHP 정규식
0
A
답변
3
어느 정도의 전원 솔루션 :
function validate($str)
{
preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})$/', $str, $matches);
if (count($matches) != 7)
return false;
$valid_year = range(2000, 2050); // your range
$valid_month = range(1, 12);
$valid_day = range(1, 31);
$valid_hour = range(0, 24);
$valid_minute = range(0, 59);
$valid_second = range(0, 59);
list($str, $year, $month, $day, $hour, $minute, $second) = $matches;
foreach(array('year', 'month', 'day', 'hour', 'minute', 'second') as $part)
{
if (!in_array($$part, ${'valid_'.$part}))
return false;
}
return checkdate($month, $day, $year); // this will reject absurd values like February 30 or April 31
}
편집 : 나는 strtotime
를 신뢰하지 않습니다. 예를 들면 다음과 같습니다. "타임 스탬프의 유효 범위는 일반적으로 1901 년 12 월 13 일 20:45:54 UTC에서 2038 년 1 월 19 일 03:14:07 UTC까지입니다." (strtotime
매뉴얼 페이지에서 인용). 이 범위 밖의 날짜를 허용하려면 어떻게합니까? 나에게, strtotime
은 알 수없는 블랙 박스입니다. 나를 잘못 이해하지 마라 : 나는 결국 그것을 사용한다! 하지만 나는이 사건을지지하지 않을 것이다.
1
주셔서 감사합니다 날짜 정규식 및 시간 정규식 사이에 문자 'T'를 넣어,이 정규식을 시도해보십시오
(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})
1
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$
이가 올바른 형식입니다 보장합니다. 그런 다음 유효한 datetime이되도록 strtotime과 같은 함수를 호출해야합니다.
1
사람들/응용 프로그램이 시스템의 로켈에 따라 다른 형식으로 입력 된 날짜 문자열을 가질 수 있으므로 실제로는 필요하지 않다고 생각합니다.
가장 좋은 방법은 주어진 날짜에서 UNIX_TIMESTAMP를 가져 와서 유효한지 확인하는 것입니다.
예 :
$date1 = "2011-02-23T13:04:41";
$date2 = str_replace("T", " ", $date1); // removing the T
$date3 = strtotime($date2);
지금 방금 확인하고 그 다음 원래 입력 한 날짜는 물론이고, 유효한의 또는 당신의 필요 조건을 충족하는 경우 $ date3 ..와 함께 작동합니다. 시간 값이 유효한 날짜를 나타내는 경우
(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}) // pseudo - not tested
1
이 확인 :
$t = strtotime($yourTimeString);
if ($t === FALSE) {
// $yourTimeString is not valid.
}
을 당신이를 확인하려면
그냥 경우에 당신은 함께 일반 이동이 모든 혼란을 필요로하지 않습니다 문자열 형식 자체, 정규식 검사를 사용하십시오.
관련 문제
- 1. PHP 날짜와 시간 정규식
- 2. 날짜와 시간을 비교하는 PHP 날짜 형식?
- 3. 날짜와 시간을 UTC로 저장하고 PHP/MySQL에서 로컬 시간을 변환하는 경우
- 4. postgresql에서 날짜와 시간을 설정하십시오.
- 5. 현재 날짜와 시간을 얻으십시오.
- 6. MySQL 데이터베이스에 날짜와 시간을 더하기
- 7. 문자열의 날짜와 일치하는 정규식
- 8. 시간을 나타내는 GUI 컨트롤
- 9. 변환 날짜와 시간을 UTC에서 MYSQL
- 10. ADO.NET은 날짜와 시간을 어떻게 저장합니까?
- 11. 날짜와 시간을 C로 가져 오기
- 12. MySQL의 날짜와 시간을 datetime으로 변환
- 13. Codeigniter에서 현재 날짜와 시간을 검색합니다.
- 14. 현지 날짜와 시간을 얻는 방법?
- 15. 현재 날짜와 시간을 배치 파일
- 16. 날짜와 시간을 어떻게 요약 하시겠습니까?
- 17. 선택한 날짜와 시간을 plist에 저장하기
- 18. (PHP) 날짜와 시간
- 19. DNA 코드를 나타내는 문자열의 정규식
- 20. 선택기에서 선택한 날짜와 시간과 현재 날짜와 시간을 비교합니다.
- 21. 내가 날짜와 테이블이있어 PHP
- 22. PHP 날짜와 시간대
- 23. 로그 파일에서 날짜와 시간을 나누는 파이썬 스크립트
- 24. 현재 날짜와 시간을 표시하는 기능이 있습니까?
- 25. 날짜와 시간을 확인하는 가장 좋은 방법은 무엇입니까
- 26. Crystal 보고서에 날짜와 시간을 표시하려면 어떻게합니까?
- 27. oracle의 현재 날짜와 시간을 반환하는 함수를 생성하십시오.
- 28. 델파이에서 컴파일 날짜와 시간을 가져 오는 방법
- 29. C++에서 날짜와 시간을 분할하는 방법은 무엇입니까?
- 30. oracle에 날짜와 시간을 삽입하는 방법은 무엇입니까?
이것은 '1234-56-78T90 : 98 : 76'과 같은 것을 허용하므로 첫 번째 단계입니다. –
감사합니다. 검증의 다른 부분은 그렇게 문제가되지 않습니다. –