2017-06-30 3 views
1

Ich erhalte stammt wie diese aus einer mySQL Abfrage Rückkehr: 2017-06-23 20:08:58Datumsformatierung FALSCH

Ich versuche, dies zu tun, die Daten wieder in einem einfacheren Format zu erhalten:

$response = $stmt->fetchAll(PDO::FETCH_ASSOC); 
$items = array(); 
foreach ($response as &$value) { 
    $items[] = date_format($value['date_added'], 'Y-m-d'); 
} 

jedoch , gibt dies nur false für jedes Datum zurück.

Wenn ich versuche,

$response = $stmt->fetchAll(PDO::FETCH_ASSOC); 
    $items = array(); 
    foreach ($response as &$value) { 
     $items[] = $value['date_added']; 
    } 

ich wieder die Daten in diesem Format (2017.06.23 20.08.58), so dass ich weiß, dass die Abfrage funktioniert, aber wie formatiere ich diese Daten " auf dem Sprung? "

+0

Sie könnten es einfach als Datum in die Abfrage und nicht als Datetime umwandeln. Benötigen Sie später das vollständige Format? – chris85

Antwort

3

date_format möchte ein DateTimeInterface-Objekt anstelle einer Zeichenfolge. Was Sie tun können, ist die Verwendung von mysql date_format in Ihrer Abfrage, so dass Sie es nicht mit PHP machen müssen.

SELECT DATE_FORMAT(date_added, '%Y-%m-%d') AS date_added 
+0

Perfekt! Vielen Dank! – jonmrich

+0

Große Antwort. Wenn Sie es jemals in PHP machen wollen, verwenden Sie 'date()' anstelle von 'date_format()'. – AbraCadaver