我想使用PHP正則表達式來計算日期字段「YYYYMMDD
」。我想是這樣的php日期格式正則表達式檢查
/([0-9]{4})([0-9]{2})([0-9]{2})/
,但在這其中,它會接受任何兩個數字像01-99的MM或DD,但我希望有東西給01-12爲MM和01-31爲DD。任何建議這樣做?
感謝
我想使用PHP正則表達式來計算日期字段「YYYYMMDD
」。我想是這樣的php日期格式正則表達式檢查
/([0-9]{4})([0-9]{2})([0-9]{2})/
,但在這其中,它會接受任何兩個數字像01-99的MM或DD,但我希望有東西給01-12爲MM和01-31爲DD。任何建議這樣做?
感謝
這應該做的工作:
function dateValidate($date) {
$t = strtotime($date);
return date('Ymd', $t) == $date;
}
編輯:值得關注的是這不會是一樣快的正則表達式,但在明顯的性能方面將正常工作。
我會試試這個,謝謝。 – Jay 2011-04-26 19:42:12
對於日期驗證,Regex似乎不太實際。爲什麼不把它分成幾塊,然後用checkdate()
?
不要使用checkdate作爲checkdate('1 \'','1','2000')驗證TRUE。
可能需要添加一些PHP代碼進行驗證 – Znarkus 2011-04-26 19:19:41
正則表達式不是有效日期的方式,除非是最粗略的方式(例如「它是所有數字」)。 '2011年2月29日'將被接受,即使這不是有效的日期,因爲2011年不是一個閏年。 – 2011-04-26 19:28:02
@all,我同意原因,將寫一個PHP的fucntion。謝謝。 – Jay 2011-04-26 19:41:57