2011-11-12 7 views
3

PHP에서 날짜 시간 스탬프가 올바른지 확인하는 방법이 있습니까?PHP 날짜/시간 스탬프가 맞는지 확인하십시오.

현재 MySQL에서 yyyy-mm-dd hh:mm:ss을 사용하고 있으며 사용자가 올바른 형식과 일치하는 날짜/시간 스탬프를 제공하고 있는지 확인하고자합니다.

+0

을 참조하십시오. 사용자가'hh : mm : ss'에 시간 형식을 삽입하기를 원하십니까? 얼마나 많은 사람들이 그렇게 할 것입니까? – Mob

+1

[이것은 당신을 도울 수있다] [1] [1] : http://stackoverflow.com/questions/141315/php-check-for-a-valid-date-web-date-conversions –

+1

에서 Stackoverflow 당신은 이것의 많은 해결책을 발견 할 수 있습니다. http://stackoverflow.com/questions/141315/php-check-for-a-valid-date-weird-date : [1] [1] [이 질문에 시도] -conversions –

답변

0

입니다 mktime()에 타임 스탬프의 모든 부분을 통과하고 거짓 또는 -1이 반환되는 경우 (PHP 버전에 따라) 수 주어진 문자열을 구문 분석 한 다음 입력 한 날짜와 같은지 확인하십시오. 아래에 유의하십시오.

$dt = DateTime::createFromFormat('Y-m-d H:i:s', '2011-01-32 12:00:00'); 
echo $dt->format('Y-m-d H:i:s'); 
// outputs 2011-02-01 12:00:00 

HTH.

5

[누군가가 좋은 (bugfree), 작업 checkdate() 예제 때까지] 나는이 기능을 사용하고 있습니다 : 그것은 아니지만 b를 $ 마찬가지 반환 checkdate() : BTW

<?php 
function validateMysqlDate($date){ 
    if (preg_match("/^(\d{4})-(\d{2})-(\d{2}) ([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/", $date, $matches)) { 
     if (checkdate($matches[2], $matches[3], $matches[1])) { 
      return true; 
     } 
    } 
    return false; 
} 

// check it: 
    $a = validateMysqlDate('2012-12-09 09:04:00'); 
    $b = validateMysqlDate('20122-12-09 09:04:00'); 
    $c = validateMysqlDate('2012-12_09 09:04:00'); 
    $d = validateMysqlDate(''); 
    var_dump($a); 
    var_dump($b); 
    var_dump($c); 
    var_dump($d); 
?> 

과 유효한 mysql datetime

관련 문제