preg_match needs a / or another char as delimiter.
preg_match("/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/",$date)
you also should check for validity of that date so you wouldn't end up with something like 9999-19-38
bool checkdate ( int $month , int $day , int $year )