Hàm này sẽ giúp validate ngày tháng theo 1 định dạng được config trước dạng: ngày,tháng,năm giờ phút giây ví dụ:
Y-m-d h:i:s, d/m/Y h:i:s .....
<?php
function isDate($sDate){
$error = array();
$dateFormate = 'd/m/Y h:i:s';
preg_match_all('/([0-9]+)/',$sDate,$d);
preg_match_all('/([^0-9]+)/',$sDate,$sd);
preg_match_all('/([a-z]+)/i',$dateFormat,$formatDate);
preg_match_all('/([^a-z]+)/i',$dateFormat,$sformatDate);
$date = array();
foreach($formatDate[0] as $k=>$v){
$date["$v"] = isset($d[0][$k])?$d[0][$k]:0;
}
foreach($sd[0] as $k=>$v)
if($v!=$sformatDate[0][$k]) error[] = "Date $sDate is not samilar with format dateFormat";
if(!checkdate($date['m'],$date['d'],$date['Y'])) error[] = "Date $sDate is not exists ";
if(isset($date['h'])&&($date['h']<0||$date['h']>60)) error[] = "Thời gian không hợp lệ";
if(isset($date['i'])&&($date['i']<0||$date['i']>60)) error[] = "Thời gian không hợp lệ";
if(isset($date['s'])&&($date['s']<0||$date['s']>60)) error[] = "Thời gian không hợp lệ";
}
return $error;
$r = isDate('32/11/2007 11:11:11');
print_r($r);exit();
?>
Tác giả:TG
Webmaster
http://phpbasic.com
