日付の型チェック

$var="2019/2/19";
if(preg_match('/^([1-9][0-9]{3})\/([1-9]{1}|1[0-2]{1}|[0][1-9])\/([1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1}|[0][1-9])$/', $var)){
	echo $var . "正しい日付<br>";
} else {
	echo $var . "不正の日付<br>";
}

ただ、これvarが2018/2/29でも、2019/2/29でも正しいって出てしまうし、30日しかない月でも31日って入力されてもOKになってしまうんだよね。

まーライブラリーであるんだろうけど。ロジックとしてはわかりました。