Sinds (rond) PHP 5.2 heeft PHP een klasse/object ingebouwd voor het omgaan met datums en tijden, genaamd DateTime . In een leegte is het altijd beter om een ingebouwde functie te gebruiken dan zelf te ruziën met de rommelige details.
De DateTime-constructor (of de functie date_create) accepteert een datum in elk formaat dat door strToTime wordt begrepen. Alles wat je moet weten over strToTime is zijn magische voodoo die een datum correct herkent in bijna elk tekenreeksformaat. Toen ik strToTime voor het eerst tegenkwam, had ik dezelfde interne reactie die je nu hebt ("dat is onzin / lijkt onbetrouwbaar"). Het is niet. Het werkt gewoon op een manier die uw eigen fragiele begrip van datums nooit zal doen (en als u denkt dat u datums begrijpt, doet u dat ook niet. Vertrouw me.)
Haal dus de informatie uit MySQL als een datum/tijd-string en maak onmiddellijk een PHP-datumobject. Gebruik de date_format methode (met enkele handige constanten ) wanneer/als je de datum opnieuw als string nodig hebt.