首頁  >  文章  >  後端開發  >  php驗證一個日期的格式是否正確

php驗證一個日期的格式是否正確

小云云
小云云原創
2018-05-14 14:26:2120486瀏覽

在PHP開發中,我們一定會接觸到date()函數,之前我們介紹過PHPdate函數的一些用法,相信大家都會使用了,這篇文章主要教大家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 日期字符串 
$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的形式:

<?php
 header("Content-type:text/html;charset=utf-8");
 $date = &#39;2015-08-11 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;;
 }
?>

所以要驗證日期格式是否為2015-08-11,可以改成if( date('Y-m-d', strtotime($date) )  == $date )來判斷,驗證其他格式,以此類推。

雖然文章看起來很簡短,方法看起來很簡單,但是它確實是一個很實用的小案例,大家趕緊get起來吧!

相關推薦:

關於PHPdate()函數的一個相關問題

php date() 函數取得目前日期和時間及格式化方法參數詳解

php date與gmdate取得日期的差異你知道嗎?

以上是php驗證一個日期的格式是否正確的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn