国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP學習之校驗日期格式合法性?(使用strtotime()和date())

2024-09-04 11:47:05
字體:
來源:轉載
供稿:網友

本篇文章主要講述了用PHP來校驗日期格式是否合法,具有一定參考價值,有需要的朋友可以了解一下,希望能幫到你。

在后端開發中,我們常常需要校驗前端傳入參數的合法性,如果是校驗日期參數,我們可以通過下面的方法來校驗:

  1. /** 
  2.  
  3.  * 校驗日期格式是否合法 
  4.  
  5.  * @param string $date 
  6.  
  7.  * @param array $formats 
  8.  
  9.  * @return bool 
  10.  
  11.  */ 
  12.  
  13. function isDateValid($date$formats = array('Y-m-d''Y/m/d')) { 
  14.  
  15.   
  16.  
  17.     $unixTime = strtotime($date); 
  18.  
  19.     if(!$unixTime) { //無法用strtotime轉換,說明日期格式非法 
  20.  
  21.         return false; 
  22.  
  23.     } 
  24.  
  25.   
  26.  
  27.     //校驗日期合法性,只要滿足其中一個格式就可以 
  28.  
  29.     foreach ($formats as $format) { 
  30.  
  31.         if(date($format$unixTime) == $date) { 
  32.  
  33.             return true; 
  34.  
  35.         } 
  36.  
  37.     } 
  38.  
  39.   
  40.  
  41.     return false; 
  42.  

說明:為什么只用strtotime()函數是無法準確校驗時間呢?

因為只要格式正確的日期用strtotime()都能將其轉成時間戳,比如2018-02-31這個日期,其實邏輯上來說這個日期是不存在的,但是在strtotime()函數依然能將其成功轉成時間戳,所以我們需要將時間戳用date()轉成標準格式,然后和傳入的日期進行比對,如果不相等,說明這個傳入的日期也是不合法的。

PHP本身也有校驗時間的函數checkdate(),這個函數需要三個參數,分別是月、日、年。比如上面的日期可以這樣調用checkdate函數檢測

  1. if(checkdate(2, 31, 2018)) { 
  2.  
  3.     echo '日期格式正確'
  4.  
  5. else { 
  6.  
  7.     echo '日期格式不正確'
  8.  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五河县| 县级市| 永和县| 新竹县| 永安市| 和顺县| 黑山县| 屏边| 马鞍山市| 加查县| 连山| 南通市| 章丘市| 南和县| 呼图壁县| 德令哈市| 定边县| 修文县| 萍乡市| 武强县| 海丰县| 永济市| 黑水县| 洪江市| 吉木乃县| 游戏| 英德市| 南靖县| 静海县| 灯塔市| 怀仁县| 临夏市| 兴海县| 马尔康县| 南充市| 上犹县| 荥阳市| 汪清县| 承德县| 洛宁县| 平利县|