日付入力のバリデーションを実装したときの記録
今回は年月日の入力の際のバリデーションを実装した。
入力して欲しい形式は(YYYY-MM-DD)とした。(月日は1桁でもデータベースには登録できるが今回はこの形式にした)
段階としては下記の2段階で行った
- 日付の形式が正しいかどうかチェック(YYYY-M-DやYYYYMMDDなどが入力されたときにエラー)
- その日付が存在するかどうかチェック
実際に使用したコード
if ((preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $internship['test_date']) == false)) {
$errors['test_date'] = 'WEBテスト締め切り日の形式が正しくありません';
} else {
list($year, $month, $day) = explode('-', $internship['test_date']);
if (checkdate($month, $day, $year) == false) {
$errors['test_date'] = 'WEBテスト締め切り日が正しくありません';
}
}