Od (přibližně) PHP 5.2 má PHP vestavěnou třídu/objekt pro práci s daty a časy, nazvanou DateTime . V prázdnotě je vždy lepší použít vestavěný, než se sami hádat s chaotickými detaily.
Konstruktor DateTime (nebo funkce date_create) přijímá datum v jakémkoli formátu, kterému strToTime rozumí. Vše, co potřebujete vědět o strToTime, je magické voodoo, které správně rozpozná datum v téměř jakémkoli formátu řetězce. Když jsem se poprvé setkal se strToTime, měl jsem stejnou vnitřní reakci, jakou máte nyní ("to jsou kecy/zdá se nespolehlivé"). To není. Prostě to funguje způsobem, který vaše vlastní křehké chápání dat nikdy nepochopí (a pokud si myslíte, že datům rozumíte, tak ne. Věřte mi.)
Vytáhněte informace z MySQL jako řetězec data/času a okamžitě vytvořte objekt data PHP. Použijte metodu date_format (s některými praktickými konstantami ), kdy/pokud potřebujete datum znovu jako řetězec.