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