DateTime()
が文字列を解析できるかどうかをチェックすることはできますか?私が試してみると:PHPのDateTime解析が可能かどうかチェック
new DateTime('05.06.17');
DateTime cantは例外をスローします。ですから、どうすればこれを防ぐことができ、解析が可能かどうか前に確認できますか? DateTimeが読むことができる多くの形式があります。私は正規表現でそれぞれをチェックしたくありません。
DateTime()
が文字列を解析できるかどうかをチェックすることはできますか?私が試してみると:PHPのDateTime解析が可能かどうかチェック
new DateTime('05.06.17');
DateTime cantは例外をスローします。ですから、どうすればこれを防ぐことができ、解析が可能かどうか前に確認できますか? DateTimeが読むことができる多くの形式があります。私は正規表現でそれぞれをチェックしたくありません。
date_parseを使用してください。日付文字列を取り、日付の詳細を含む配列を返します。
if (date_parse($myDateSring) !== false) {
//valid date
}
を$myDateSring
関数は、日付部分のインデックス付き配列を返します有効な日付である場合:それは解析できない場合、それはあなたが使用することができますfalse
を返します。たとえば、
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