Siden (omkring) PHP 5.2 har PHP haft en indbygget klasse/objekt til håndtering af datoer og klokkeslæt, kaldet DateTime . I et tomrum er det altid bedre at bruge en indbygget end selv at skændes med de rodede detaljer.
DateTime-konstruktøren (eller funktionen date_create) accepterer en dato i ethvert format, som strToTime forstår. Alt du behøver at vide om strToTime er det magiske voodoo, der korrekt genkender en dato i næsten ethvert strengformat. Da jeg først stødte på strToTime, havde jeg den samme interne reaktion, som du har nu ("det er noget bullshit/ser upålideligt"). Det er ikke. Det virker bare på en måde, som din egen skrøbelige forståelse af datoer aldrig vil (og hvis du tror, du forstår datoer, gør du det ikke. Stol på mig.)
Så træk oplysningerne fra MySQL som en Dato/Time-streng, og opret straks et PHP-datoobjekt. Brug metoden dato_format (med nogle praktiske konstanter ) når/hvis du skal bruge datoen igen som en streng.