通常の日付バリデーションの設定方法
$validator = new Validator();
$validator->add('<項目名>', [
'date' => [
'rule' => 'date',
'message' => '<エラーメッセージ>',
]);
この場合、「2019/06/21」といったフォーマットだとバリデーションOKとなりますが、海外で使用される「06/21/2019」といったフォーマットだとエラーになってしまいます。
日付フォーマットを指定したバリデーションの設定方法①
$validator = new Validator();
$validator->add('<項目名>', [
'date' => [
'rule' => ['date', 'mdy'],
'message' => '<エラーメッセージ>',
]);
この場合、「06/21/2019」といったフォーマットだとバリデーションOKとなりますが、逆にこれまでOKだった「2019/06/21」がバリデーションNGとなってしまいます。
日付フォーマットを指定したバリデーションの設定方法②
$validator = new Validator();
$validator->add('<項目名>', [
'date' => [
'rule' => ['date', 'mdy'],
'message' => '<エラーメッセージ>',
]);
上記のようにフォーマットを複数指定することも可能で、この場合「2019/06/21」「06/21/2019」のどちらもバリデーションOKとなります。
フォーマット一覧
最後に日付バリデーションで設定できるフォーマットを一覧にしておきます。
フォーマット | サンプル(2006年12月27日の場合) |
---|---|
dmy | 27-12-2006 or 27-12-06 ※区切りは「-」「 」「.」「/」が可能 |
mdy | 12-27-2006 or 12-27-06 ※区切りは「-」「 」「.」「/」が可能 |
ymd(default) | 2006-12-27 or 06-12-27 ※区切りは「-」「 」「.」「/」が可能 |
dMy | 27 December 2006 or 27 Dec 2006 |
Mdy | December 27, 2006 or Dec 27, 2006 ※カンマ無しも可 |
My | December 2006 or Dec 2006 |
my | 12/2006 or 12/06 ※区切りは「-」「 」「.」「/」が可能 |
ym | 2006/12 or 06/12 ※区切りは「-」「 」「.」「/」が可能 |
y | 2006 |