国产探花免费观看_亚洲丰满少妇自慰呻吟_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.  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西盟| 伊宁市| 额尔古纳市| 广平县| 桃源县| 阿城市| 珲春市| 聂荣县| 上饶县| 砀山县| 南漳县| 剑川县| 康保县| 长宁县| 台安县| 绥德县| 赤峰市| 剑阁县| 紫金县| 台北县| 连南| 米林县| 苗栗市| 得荣县| 龙陵县| 黄龙县| 隆子县| 沧州市| 崇义县| 清新县| 原平市| 枞阳县| 临朐县| 丹阳市| 棋牌| 星子县| 西乡县| 尖扎县| 黔东| 冕宁县| 桐柏县|