Creole und PHP 5.2.4 verstehen sich nicht
Geschrieben von Dejan Spasic • Monday, 17. September 2007 • Kategorie: PHP , Symfony • Kommentare (0)In einem Artikel Warning about PHP 5.2.4 and Creole wird der Einsatz von Creole in Verbindung mit der PHP Version >= 5.2.4 gewarnt. Dadurch das der PHP Bug #41964 gefixed wurde, funktioniert die Methode MySQLResultSet::getTimestamp nicht mehr so wie gedacht. Hat z.B. die Spalte den Wert 0000-00-00 00:00:00, liefert strtotime nun false zurück. Vor der aktuellen PHP Version wurde 943905600 zurückgegeben, was als Datum 1999-11-30 entspricht. Wie dem auch sei, dadurch das false zurückgegeben wird, wird dementsrprechen eine Ausnahme geworfen.
Der Author empfiehlt diesen Hack einzufügen.
if ($this->fields[$column] == '0000-00-00 00:00:00') {
// If the value is ‘0000-00-00 00:00:00′, set it back to the value strtotime() returned before PHP 5.2.4
$ts = 943916400;
}
else {
$ts = {FNAMEL}">strtotime($this->fields[$column]);
}
Meiner Meinung nach, sollte zusätzlich noch nur nach das Datum ohne Uhrzeit geprüft werden.
if ($this->fields[$column] == '0000-00-00 00:00:00'
|| $this->fields[$column] == '0000-00-00') {
// If the value is ‘0000-00-00 00:00:00′, set it back to the value strtotime() returned before PHP 5.2.4
$ts = 943916400;
}
else {
$ts = {FNAMEL}">strtotime($this->fields[$column]);
}


0 Kommentare
Kommentar schreiben