Home >Backend Development >PHP Tutorial >PHP怎么验证日期格式是否正确?

PHP怎么验证日期格式是否正确?

PHPz
PHPzOriginal
2016-06-02 11:34:412595browse

PHP验证日期格式是否正确的方法:首先创建一个PHP示例文件;然后定义一个日期值;接着通过“preg_match”方法以及if语句判断并验证日期格式是否正确;最后通过echo输出判断结果即可。

PHP怎么验证日期格式是否正确?

PHP怎么验证日期格式是否正确?

思路

可以用strtotime()把日期($date)转成时间戳,再用date()按需要验证的格式转成一个日期,来跟$date比较是否相同来验证这个日期的格式是否是正确的。

正则验证日期格式

<?php
$dateTime="2020-6-6 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 日期字符串 
$format 日期格式 
* 返回 无 
*/
function is_Date($str,$format=&#39;Y-m-d&#39;){ 
    $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; 
    } 
}

注意以上判断方法对一般的要求足够了,但不是非常严格,对于 2020-03-00 或 2020-02-31 这种格式的日期也会返回 true,本人一直没有找到更好的解决办法

以下代码验证日期是否为2020-04-03 20:06:08的形式:

<?php
 header("Content-type:text/html;charset=utf-8");
 $date = &#39;2020-04-03 20:06:08&#39;;
 if( date(&#39;Y-m-d H:i:s&#39;, strtotime($date))  == $date )
 {
  echo &#39;yes&#39;;
 }
 else
 {
  echo &#39;no&#39;;
 }
?>

所以要验证日期格式是否为2020-04-03,可以改成if( date('Y-m-d', strtotime($date)) == $date )来判断,验证其他格式,以此类推。

虽然文章看起来很简短,方法看起来很简单,但是它确实是一个很实用的小案例,大家赶紧get起来吧!

更多相关知识,请访问 PHP中文网!!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn