2009-05-19 4 views
1

Ich versuche, eine Funktion zu schreiben, um ein Datum und eine Uhrzeit für mich zu formatieren. Ich habe eine fast identische Funktion, die nur ein Datum formatiert. Diese Funktion funktioniert gut. Ich habe gerade etwas Code hinzugefügt, um zu versuchen, das Datum mit einer Zeit zu formatieren. Es sollte etwas zurückgeben wie „18. Mai 2009 21.50“ aber ich diese Warnung bin immer:Probleme beim Formatieren eines Datums

Warning: mktime() expects parameter 6 to be long, string given in 
public_html/include/functions.php on line 421 

Hier ist der Code, den ich habe:

function dateTimeFormat($dateIn) 
{ 
    $x = explode(" ",$dateIn); 
    $y = explode("-",$x[0]); 
    $z = explode(":",$x[1]); 

    $year = $y[0]; 
    $month = $y[1]; 
    $day = $y[2]; 
    $hour = $z[0]; 
    $min = $z[1]; 

    $dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year)); 

    return $dateOut; 
} 

Was ist Putting out ist falsch auch. Es setzt heraus:

December 31, 1969 07:00 PM 

aber der Zeitstempel in der Datenbank

2009-05-18 05:07:39 

Antwort

4

PHP hat schon eine ganz gute Datum-Parsing-Funktion: strtotime(). Es gibt einen Unix-Zeitstempel zurück, den Sie an date() übergeben können.

function dateTimeFormat($dateIn) 
{ 
    return date("F j, Y h:i A", strtotime($dateIn)); 
} 
+0

Das hat die Warnung zu befreien, aber es falsch noch angezeigt wird:

Mit anderen Worten, können Sie Ihre Funktion diese reduziert werden. Es zeigt immer noch: 31. Dezember 1969 19:00 Uhr, aber der Zeitstempel in MySQL ist 2009-05-18 00:00:00. –

+0

Ich habe das Problem behoben –

+0

Ähm, wie? Bitte teilen! – Jrgns