一般來說判斷日期的格式用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 格式正確
	

酷米 © All Rights Reserved.

loading
Loading...