php验证⼀个⽇期的格式是否正确
思路
可以⽤strtotime()把⽇期($date)转成时间戳,再⽤date()按需要验证的格式转成⼀个⽇期,来跟$date⽐较是否相同来验证这个⽇期的格式是否是正确的。
$dateTime=”2010-6-4 00:00:00″;
if(preg_match(“/^d{4}-d{2}-d{2} d{2}:d{2}:d{2}$/s”,$dateTime))
{
echo “Yes”;
}else{
echo “No”;
}
/*
* ⽅法 isDate
* 功能判断⽇期格式是否正确
* 参数 $str ⽇期字符串
unix时间戳转换日期格式$format ⽇期格式
* 返回⽆
*/
function is_Date($str,$format='Y-m-d'){
$unixTime_1=strtotime($str);
if(!is_numeric($unixTime_1)) return false; //如果不是数字格式,则直接返回
$checkDate=date($format,$unixTime_1);
$unixTime_2=strtotime($checkDate);
if($unixTime_1==$unixTime_2){
return true;
}else{
return false;
}
}
注意以上判断⽅法对⼀般的要求⾜够了,但不是⾮常严格,对于 2012-03-00 或 2012-02-31 这种格式的⽇期也会返回 true,本⼈⼀直没有到更好的解决办法
以下代码验证⽇期是否为2015-08-11 20:06:08的形式:
header("Content-type:text/html;charset=utf-8");
$date = '2015-08-11 20:06:08';
if( date('Y-m-d H:i:s', strtotime($date)) == $date )
{
echo 'yes';
}
else
{
echo 'no';
}
>
所以要验证⽇期格式是否为2015-08-11,可以改成if( date('Y-m-d', strtotime($date)) == $date )来判断,验证其他格式,以此类推。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论