2011-03-30 54 views
-1

在我的項目中,我從csv文件導入用戶。在某些列有日期值 例如: - 出生日期,項目開始日期,項目死線日期等我知道日期列標題,但用戶可以用不同的方式輸入日期格式。我如何驗證從csv獲得的價值是否是有效的日期?如何在php中驗證日期?

+7

請指出您已經嘗試過的http://stackoverflow.com/search?q=validate+date+php的3177個結果中的哪一個,以及爲什麼您仍然需要提出您的問題。 – Gordon 2011-03-30 08:52:25

+1

在一個旁註中,你的問題不應該是如何驗證日期,當他們** ** ** **的CSV文件,但如何確保他們沒有得到**在** CSV格式的文件中的各種格式第一名。畢竟,你怎麼能夠可靠地說出這是哪一天:11/10/09?修復根本原因,而不是症狀。 – Gordon 2011-03-30 09:02:18

回答

1

雖然不總是準確,但您可以嘗試strtotime()。這不是一個完美的解決方案,但值得嘗試。只是閱讀筆記,因爲它可以有不同的行爲取決於你的日期格式。

0

php函數strtotime可以採用許多不同的日期格式並返回一個時間戳。如果您可以對有效的時間戳值進行深思熟慮的斷言,則可以使用這些斷言進行驗證。 但它可能會出現副作用,如日月不匹配,所以這將是一個糟糕的驗證。我建議你在輸入文件上執行一個通用的日期模式。

0

我使用Zend_Date,因爲構造函數會爲我驗證日期,但是當然,如​​果您不希望獲得準確的格式,您將會收到@gordon在11/10/09類型中指出的實際問題的日期。這會生成一個有效的日期,但對於默認的語言環境/格式當然可能是錯誤的。