確保有效日期:利用PHP 的DateTime 類別
處理特定格式的日期字串時,例如yyyy-mm-dd,例如準確確定其有效性至關重要。雖然正規表示式可能足以進行基本驗證,但在字串格式顯示正確但表示無效日期的情況下,它就不夠了。
要解決此限制,請考慮使用 PHP 的 DateTime::createFromFormat() 方法。此函數既可以將日期字串解析為 DateTime 對象,又可以同時驗證其有效性。
function validateDate($date, $format = 'Y-m-d') { $d = DateTime::createFromFormat($format, $date); // This fix ensures that the year (Y) comparison is strict. return $d && $d->format($format) === $date; }
用法範例:
var_dump(validateDate('2013-13-01')); // false var_dump(validateDate('20132-13-01')); // false var_dump(validateDate('2013-11-32')); // false var_dump(validateDate('2012-2-25')); // false var_dump(validateDate('2013-12-01')); // true var_dump(validateDate('1970-12-01')); // true var_dump(validateDate('2012-02-29')); // true var_dump(validateDate('2012', 'Y')); // true var_dump(validateDate('12012', 'Y')); // false var_dump(validateDate('2013 DEC 1', 'Y M j')); // true
以上是PHP 的 DateTime 類別如何確保有效的日期字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!