PHP判断日期(生日)格式是否正确合法的方法

  •   
  • 8504
  • PHP
  • 29
  • super_dodo
  • 2016/10/10

在某些场景之中需要判断某个日期是否是正确的日期格式.例如需要用户填写自己的生日,建议直接使用统一的日期控件即可。但是某些特殊自定义的场景下是用户自行输入的年月日,这个时候就需要对这个日期的合法性进行验证了。验证方法如下。


$date_str='2014-11-11';//这里可以任意格式,因为strtotime函数很强大
//$date_str='2014/11/11';

$is_date = strtotime($date_str) ? strtotime($date_str) : false;
  
if($is_date === false){			//请注意三个等号
    exit('日期格式非法');
}else{
    echo date('Y-m-d',$is_date);//只要提交的是合法的日期,这里都统一成2014-11-11格式
}

//如果是生日的话,还需要判断 is_date 小于当前时间 time()

另外还有一个PHP的官方函数checkdate()

bool checkdate(int $month,int $day,int $year)

如果给出的日期有效则返回 TRUE,否则返回  FALSE。检查由参数构成的日期的合法性。日期在以下情况下被认为有效:  
year 的值是从 1 到 32767    
month 的值是从 1 到 12    
day 的值在给定的 month所应该具有的天数范围之内,闰年已经考虑进去了。

虽然我们都生于尘土,终于尘土,但是活着的过程就是一段美丽的舞蹈。