Jörg Reinholz: Tage zu Datum addieren mit mysql-fake?

Beitrag lesen

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.

Jörg Reinholz