PHP将天数转换为渐进式dateTime

May be a simple question, but if I have a date say 3rd of December. How could I use php to get that date in a date time format with the current year?

so for 2016 it will be 2016-12-03 and 2017 2017-12-03.

I have a function that needs to calculate the next payment date, and would need to work without magic strings

Just use the DateTime object. You get the current year i.e. with the date-function. Or you could also use the DateTime Object again (new DateTime())->format('Y')

$date = new DateTime();
$date->setDate(date('Y'), 12, 3);
echo $date->format('Y-m-d');