Bounty: Zeitdifferenz und Format

Hey,

habe noch folgendes Problem. Bei meinen Erfahrungsberichten wird Beginn und Ende des Praktikums in der Form YYYY-MM-DD in meiner MySQL Datenbank gespeichert. Die betreffenden Felder heißen "datea" und "dateb" und sind beide vom Typ Date.
Das Auslesen der Daten erfolgt bei mir über eine Schleife, in der die Daten in ein Feld gespeichert werden. Somit kann ich auf die die beiden werte mit $daten['datea'] bzw $daten['dateb'] zugreifen. Leider sieht die Ausgabe in der Form 2009-02-01 sehr hässlich aus. Kann ich diese Form bei der Speicherung in den String $daten noch verändern?

Außerdem würde ich gerne die Praktikumsdauer über die Zeitdifferenzt zwischen datea und dateb berechnen lassen.

Danke für Eure Unterstützung

  1. Liebe(r) Bounty,

    Du kannst mittels der Funktion sprintf Dein Datum nach Herzenslust ausgestalten. Voraussetzung dafür ist, dass Du die Informationen als "Einzelwerte" hast, da sprintf für jeden Zahlenwert einen weiteren Parameter übergeben haben will.

    for (array('datea', 'dateb') as $key) {  
        $daten[$key] = explode('-', $daten[$key]);  
        // Entweder Du arbeitest jetzt mit $daten['datea'][0], $daten['datea'][1], ... oder so:  
        $daten[$key]['year'] = $date[$key][0];  
        $daten[$key]['month'] = $date[$key][1];  
        $daten[$key]['day'] = $date[$key][2];  
    }  
      
    echo sprintf(  
        "Datum A: %02d.%02d.%04d\r\n",  
        $daten['datea']['day'],  
        $daten['datea']['month'],  
        $daten['datea']['year']  
    );  
      
    echo sprintf(  
        "Datum A: %02d.%02d.%04d\r\n",  
        $daten['dateb']['day'],  
        $daten['dateb']['month'],  
        $daten['dateb']['year']  
    );
    

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hi,

    Außerdem würde ich gerne die Praktikumsdauer über die Zeitdifferenzt zwischen datea und dateb berechnen lassen.

    zerlege das Datum und mach Dir mit mktime einen Zeitstempel, mit dem Du auch Berechnungen durchführen kannst. Anschliessend kannst Du mit date formatieren bis Du lustig wirst...

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
  3. Hallo,

    habe noch folgendes Problem. Bei meinen Erfahrungsberichten wird Beginn und Ende des Praktikums in der Form YYYY-MM-DD in meiner MySQL Datenbank gespeichert. Die betreffenden Felder heißen "datea" und "dateb" und sind beide vom Typ Date.

    das ist kein Problem. Das ist sehr erfreulich.

    Das Auslesen der Daten erfolgt bei mir über eine Schleife, in der die Daten in ein Feld gespeichert werden. Somit kann ich auf die die beiden werte mit $daten['datea'] bzw $daten['dateb'] zugreifen. Leider sieht die Ausgabe in der Form 2009-02-01 sehr hässlich aus. Kann ich diese Form bei der Speicherung in den String $daten noch verändern?

    Nicht bei der Speicherung. Aber bei der Abfrage kannst Du das Format Deines Datums mit DATE_FORMAT() so gestalten, wie Du es benötigst.

    Außerdem würde ich gerne die Praktikumsdauer über die Zeitdifferenzt zwischen datea und dateb berechnen lassen.

    MySQL hat neben DATE_FORMAT noch weitere nette Datums- und Zeitfunktionen, die Dir helfen können, zum Beispiel DATEDIFF().

    Freundliche Grüße

    Vinzenz