網頁

2013年5月29日

[php] 檢查日期及時間格式

當日期時間要儲存到資料庫的時候,總是希望儲存的格式可以相同,除了方便資料庫查詢,在資料輸出的時候,就不用再處理日期時間的格式,在此提供檢查的函數,透過此函數檢查通過的日期或是時間,都可以使用date函數將日期時間格式化。


範例:
var_dump(CheckDateTime("2013-05-31 01:40:33"));
function CheckDateTime($date_time)
{
    $check = false;
    if (strtotime($date_time)){
    //不管檢查時間或日期格式,都只取第一個陣列值
        list($first) = explode(" ", $date_time);
        //如果包含「:」符號,表示只檢查時間
        if (strpos($first, ":")){
            //strtotime函數已經檢查過,直接給true
            $check = true;
        }else{
            //將日期分年、月、日,區隔符用「-/」都適用
            list($y, $m, $d) = preg_split("/[-\/]/", $first);
            //檢查是否為4碼的西元年及日期邏輯(潤年、潤月、潤日)
            if (substr($date_time, 0, 4)==$y && checkdate($m, $d, $y)){
                $check = true;
            }
        }
    }
 return $check;
}


檢查範例:
檢查:2012-02-28 11:22:33
結果:bool(true)

檢查:2012-02-28 11:22 (沒有秒數)
結果:bool(true)

檢查:2012-2-28 1:2:3 (去0值)
結果:bool(true)

檢查:2012-02-29 (閏年)
結果:bool(true)

檢查:2011-02-29 (非閏年)
結果:bool(false)

檢查:01:33 (時:分)
結果:bool(true)