Ich verstehe nicht so ganz, warum du das nicht mit zwei timestamps machst.
Da wäre dann evtl gmmktime() bzw mktime() ganz hilfreich...
Oder du machst es mit einem Datum im Format 0000-00-00 und strftime("%Y-%d-%m") und date()
Das müsste jedenfalls funktionieren. Mit dem allen Werten einzeln dürfte das wohl nur schwer möglich sein...