[Laravel] 有効な日付かどうか?のバリデーションでアホみたいに悩んだ話 [PHP][日付][Carbon][Validation]

結論

PHP に checkdate() 関数が用意されてました…。

言い訳

年月日、もしくは年月のみがパラメーターで渡されてくる場合に、年月日として有効かどうか?のパリデーションをかけたかったわけです。

で、Carbon とかで用意されてる…よね? とか思っていろいろ探してたら見つからなくて、PHP 本家サイトに載ってたわ…と言うお話。

>>> checkdate(2,28,2021)
=> true
>>> checkdate(2,29,2021)
=> false
>>> checkdate(2,29,2020)
=> true
>>> checkdate(2,29,2000)
=> true
>>> checkdate(2,29,2100)
=> false