Ik heb een veld in de Database met jaartal 1902 bijvoorbeeld. Nu haal ik deze op:
#1: DATE_FORMAT(datum,'%d-%m-%Y')
of
#2: DATE_FORMAT(datum,'%d-%m-%y')
Bij #1: %Y == 1970
Bij #2: %y == 2001
Hoe kan ik gewoon 1902 laten zien? Hoger jaartallen (ongeveer vanaf 1910) kloppen wel met %Y. %y gaat nog minder ver terug.
Tja, moet je maar geen MySQL gebruiken, die zuigt aan alle kanten.
Het lijkt een probleem te zijn met out of range datums, datums die niet binnen de grenzen van MySQL passen. Ik vermoed dat je geen DATETIME hebt gebruikt, maar een TIMESTAMP. En die is in MySQL 100% onbetrouwbaar, heeft nogal een paar rare eigenschappen die per versie verschillen.
Gebruik een DATETIME en jouw huidige probleem is opgelost.
Heb je de database al wel geconfigureerd? Onmisbaar, zeker wanneer je corrupte data en/of resultaten wilt voorkomen.
Ik gebruik wel DATETIME. Hij kan er wel goed mee rekenen trouwens, maar het outputten gaat verkeerd.
Presentatie kun je het beste regelen in PHP, zie de DateTime-class.
Configureren zal ik nog een keer naar kijken.
Hoe eerder hoe beter, met de standaard configuratie loop je het risico jouw data kwijt te raken.
Ik wil die instellingen wel doen, maar gaat mijn data dan niet naar de knoppen?
Jij wilt MySQL gebruiken, moet je niet gaan klagen wanneer de data naar de knoppen gaat, dat hoort er bij. Moet je maar een echte database (als in DBMS) gebruiken, dan loop je dit soort risico's niet.