Samstag, 11. Juni 2011

PHP Applikation unter Windows mit Mssql/Doctrine

Betreibt man unter Windows eine PHP Applikation die mit einer MsSQL Datenbank über Doctrine arbeitet, so kann es zu Problemen mit Datumsfeldern kommen. Aus mir nicht genau bekannten Gründen verhält es sich so, dass Datumsangaben aus der Datenbank in einem Format ähnlich wie "Jun 10 2011 13:00:00" ausgegeben werden. Dies wohl aber auch nur bei bestimmten PHP Versionen.

Hier ein Issue aus dem PHP Bugtracker: http://bugs.php.net/bug.php?id=54648

Workaround:
In der Record.php von Doctrine in der Methode _get() wird jedem Feld der Wert aus der Datenbank zugeordnet. Hier muss man in Zeile 1370 herum folgendes ersetzen:



Was keinen Erfolg bringt:
  • Versuche das Format mit dem Befehl setlocale() zu setzen schlugen immer (!) fehl
  • versuchen, in der Schema.yml eine Definition mitzugeben ala "YYYY-MM-DD..." ist nicht möglich
  • set Dateformat vorher abzusetzen nützt auch nichts