Hi Jörg (ab sofort unter echtem Namen? Cool)
Was spricht denn (seit PHP 5.2) gegen das einfache date_add?
Nichts.
Aber gegen
Fatal error: Call to undefined method DateTime::add() in ...
spricht alles.
Ernst
Dann hilft, so lange niemand auf die SEHR GUTE Idee kommt, ein halbwegs aktuelles PHP ( >= 5.2 ) zu installieren, das folgende:
<?php
function HelperAddDays($date, $days=0, $format='Y-m-d H:i:s') {
/**
# $date: Format Y-m-d H:i:s oder Y-m-d
# $days: Integer (positiv oder negativ)
# $format format für Ausgabe - http://php.net/manual/en/function.date.php
# return: Datum oder false (im Fehlerfall)
**/
if (($timestamp = strtotime($date)) === false) {
#(Deine Fehlerroutine) oder
return false;
} else {
if (0==intval($days)) {
if (0==$days) {
return date($format,$timestamp);
}
} else {
$time=$timestamp+(60*60*24*$days);
return date($format,$time);
}
}
}
#Test:
$datum=HelperAddDays('2011-1-1',-1);
if ($datum) {
echo $datum;
} else {
#(Deine Fehlerroutine) oder
echo 'Fehler in ' . __FILE__ . ', Zeile ' . (__LINE__ -5).', bei der Datumsübergabe an HelperAddDays(). Der Wert für das Datum ist ungültig.';
}
Das dürfte auch schneller sein als erst noch die Datenbank zu fragen. Es sei denn Du willst das direkt bei der Eingabe oder Ausgabe aus der Datenbank mit erledigen.