是否有可能檢查DateTime()
是否可以解析字符串?當我嘗試例如:php檢查是否可以解析日期時間
new DateTime('05.06.17');
DateTime不能解析它,並會拋出一個異常。那麼,如何解決這個問題並在之前檢查解析是否可行呢?有很多可能的格式DateTime可以閱讀,我不想用正則表達式檢查每個格式...
是否有可能檢查DateTime()
是否可以解析字符串?當我嘗試例如:php檢查是否可以解析日期時間
new DateTime('05.06.17');
DateTime不能解析它,並會拋出一個異常。那麼,如何解決這個問題並在之前檢查解析是否可行呢?有很多可能的格式DateTime可以閱讀,我不想用正則表達式檢查每個格式...
使用date_parse它將採用日期字符串並返回包含日期詳細信息的數組。如果它不能被解析那麼它將返回false
所以你可以使用:
if (date_parse($myDateSring) !== false) {
//valid date
}
如果$myDateSring
是一個有效的日期函數將返回日期部分的索引數組。例如:
print_r(date_parse("2006-12-12 10:00:00.5"));
Array
(
[year] => 2006
[month] => 12
[day] => 12
[hour] => 10
[minute] => 0
[second] => 0
[fraction] => 0.5
[warning_count] => 0
[warnings] => Array()
[error_count] => 0
[errors] => Array()
[is_localtime] =>
)
在這種情況下,最好的選擇是使函數檢查日期是否正確,並考慮到格式。
如果可以創建日期,則可以進行分析。
function validateDate($date, $format) {
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
函數返回true
或false
複製。
我認爲'date_parse'是你需要的。它將在無效日期返回'false' – Andy