The year-only format is a potential issue that could cause problems for you.
<?php
echo (new DateTime('1994'))->format('Y-m-d');
echo (new DateTime('2004'))->format('Y-m-d');
?>
This is because, as noted above in the documentation, 2004 gets interpreted as a time, e.g. 20:04, rather than as a year. Even though 1994 is interpreted as a year.
One solution is to add ' T' to the end of the string:
<?php
echo (new DateTime('1994 T'))->format('Y-m-d');
echo (new DateTime('2004 T'))->format('Y-m-d');
?>
Another would be to add an arbitrary time to the beginning of the string:
<?php
echo (new DateTime('11:00 1994'))->format('Y-m-d');
echo (new DateTime('11:00 2004'))->format('Y-m-d');
?>