Laravel Duskで日付枠に入力する時の注意点

Laravel本体のバージョンをあげたあとブラウザテストを走らせると
今まで通っていたところがエラーで止まるようになっていた。
バージョンをあげたせいかと思って調べてみるとそうではなく、年が変わって1月になっていたことが原因だった。

元々日付枠への入力は下記のようにしていた。

->keys("#from", $dtFrom->year, '{tab}', $dtFrom->month, $dtFrom->day)

ブラウザテストを確認すると、2023年1月20日を入力したつもりのものが
「2023/12/日」とおかしくなっていた。
実際に手入力で試してみると、月に「1」を入力した場合は確かにカーソルが次にいかない。

1月かもしれないが、10月、11月、12月かもしれないので入力を待っている状態なのだ。
システム的には2桁の月は確定なのでカーソルは次にいくし、2月以降の1桁の月も確定なので次にいく。
1月の場合のみ、カーソルが次にいかないので入力を待った状態で次の日付用の数字が入ってしまい、おかしくなっていた。

そこで修正。
月は0詰めで渡すようにした。

->keys("#from", $dtFrom->year, '{tab}', $dtFrom->format('m'), $dtFrom->day)

Categories:

Tags: