判斷日期是否合法
一般來說判斷日期的格式用PHP內建的preg_match()就夠了。
preg_match()範例
<?php
$d = "2015-02-07";
if(preg_match("/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/", $d)){
echo "格式正確";
}else{
echo "格式錯誤";
}
?>
但如果使用者惡意輸入2015-02-31,這樣不合理的日期,就很難判斷了,因此底下我結合內建preg_match()跟checkdate(),提供驗證日期正確性的函數。
原始碼
<?php
function isDate($str){
if(!preg_match("/^[0-9]{4}-[1-12]{2}-[1-31]{2}$/", $str)){
return false;
}
$__y = substr($str, 0, 4);
$__m = substr($str, 5, 2);
$__d = substr($str, 8, 2);
return checkdate($__m, $__d, $__y);
}
?>
使用範例
<?php
$a = "2015-02-30";
if(isDate($a)){
echo $a." 格式正確";
}else{
echo $a." 格式錯誤";
}
$b = "2015-12-31";
if(isDate($b)){
echo $b." 格式正確";
}else{
echo $b." 格式錯誤";
}
?>
執行結果
2015-02-30 格式錯誤
2015-12-31 格式正確
文章轉載https://cumi.co/notes/php/16
留言列表