Datumsformat

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datumsformat

    Hallo!

    Ich habe hier eine funktion die mir die Zeitdifferenz ausgibt. Das Datumsformat ist tt.mm.jjjj
    Ich möchte jetzt, dass ich auch einen "- " als trennzeichen verwenden kann, also tt-mm-jjjj allerdings bekomme ich das nicht hin. Ich habe versuch mit strlen(); das dritte Zeichen zu ermitteln, um dann mit einer if-else abfrage das "explode-trennzeichen" zu ändern, aber irgendwie funtioniert das nicht.

    PHP-Code:
    <?php
    function zeitdifferenz($datum)
    {
        
    $datum_array explode(".",$datum);
        
    $tag$datum_array[0];
        
    $monat $datum_array[1];
        
    $jahr $datum_array[2];
        
    # ist Datum korrekt??
        
    $erlaubt checkdate($monat,$tag,$jahr);
        if (
    $erlaubt == true)
        {
            
    $stamp_heute=mktime();
            
    $stamp_past=mktime(0,0,0,$monat,$tag,$jahr);
            
    $zeit_diff['sekunden'] =$stamp_heute-$stamp_past;
            
    $zeit_diff['wochen']= floor($zeit_diff['sekunden']/604800);
            
    $zeit_diff['tage'] = floor($zeit_diff['sekunden']/(3600*24));
            
    $zeit_diff['stunden']= floor($zeit_diff['sekunden']/3600);
            return 
    $zeit_diff;
        }
        else
        {
            return 
    false;
        }
    }
    $zeit_diff zeitdifferenz("14.04.2006");

    if (
    $zeit_diff != false)
    {
        echo 
    "Es sind {$zeit_diff['tage']} Tage<br>";
        echo 
    "Es sind {$zeit_diff['wochen']} Wochen<br>";
        echo 
    "Es sind {$zeit_diff['stunden']} Stunden vergangen!<br>";
            if (
    $zeit_diff['tage'] < 3)
            {
                echo 
    "Eintrag ist neu!";
            }
            else
            {
                echo 
    "Eintrag ist alt!";
            }
    }
    else
    {
        echo 
    "Datum ist nicht korrekt!";
    }
    ?>
    So... ich habs jetzt mit strpos(); gelöst, allerdings scheint mir diese Lösung nicht besonders elegant zu sein. Gibt es da vielleicht einen besseren Weg?

    PHP-Code:
        $test =strpos($datum,".",0);
        if (
    $test == false)
        {
         
    $datum_array =explode("-",$datum);
        }
        else
        {
            
    $datum_array =explode(".",$datum);
        } 
    Zuletzt geändert von Kisi; 17.04.2006, 13:05.

  • #2
    versuch mal folgendes:

    PHP-Code:
    function datediff($datum) {
        if (
    preg_match("/([0-9]{2}).([0-9]{2}).([0-9]{4})/"$datum$hits)
                           && 
    checkdate($hits[2], $hits[1], $hits[3])) {
            
    $jetzt time();
            
    $datum mktime(0,0,0,$hits[2], $hits[1], $hits[3]);
            
    //...
        
    }
        else {
            return 
    false;
        }

    Kommentar

    Lädt...
    X