2017-05-03 5 views
0

Ich habe den folgenden Code, wo es SQL-Daten in eine HTML-Tabelle füllt. Als ich versuchte, das Datum für "order_date" zu formatieren, konnte ich es irgendwie nicht zum Laufen bringen. Weiß jemand hier, wie man das Datum formatiert, um im Format des Monats Tag, Jahr (3. Mai, 20015 zum Beispiel) zu zeigen? Die Syntax, die ich verwendet habe ("M-d-y", strtotime ($ row ['order_date'])) scheint nicht zu funktionieren. Der Code, den ich unten habe, funktioniert nur zum Auffüllen von Daten, aber nicht mit dem Datumsformat für das order_date, das ich möchte. Außerdem, wie ändere ich den Code, wenn ich das letzte Element im SQL zuerst füllen möchte? Der Code, den ich jetzt habe, füllt Daten von der ersten bis zur letzten Zeile, aber ich möchte die Reihenfolge der Daten von den Daten der letzten Zeile in die erste Zeile ändern. Irgendeine Hilfe?PHP Foreach Loop Datum Format und umgekehrte Reihenfolge Daten füllen

$ sql = "SELECT id, contract_number, property_name, property_address, city, state, zip, status, order_date VON ".$email.""; $ result = $ DB_CON-> Abfrage ($ sql);

// If the SQL query is succesfully performed ($result not false) 
    if($result !== false) { 
     $data_row = '<table class="table table-striped tablesorter">' 
       . '<thead>' 
        . '<tr>' 
        . '<th>ID</th>' 
        . '<th>Contract Number</th>' 
        . '<th>Property Name</th>' 
        . '<th>Street Address</th>' 
        . '<th>City</th>' 
        . '<th>State</th>' 
        . '<th>Zip</th>' 
        . '<th>Date</th>' 
        . '<th>Status</th>' 
        . '</tr>' 
       . '<tbody>'; 

     foreach($result as $row) { 
     $data_row .= '<tr>' 
      . '<td scope="row" class="id-c text-center">'.$row['id'].'</td>' 
      . '<td>' .$row['contract_number'].'</td>' 
      . '<td>' .$row['property_name'].'</td>' 
      . '<td>' .$row['property_address'].'</td>' 
      . '<td>' .$row['city'].'</td>' 
      . '<td>' .$row['state'].'</td>' 
      . '<td>' .$row['zip'].'</td>' 
      . '<td>' .date("M-d-y", strtotime($row['order_date'])).'</td>' 
      . '<td>' .$row['status'].'</td>'; 
     } 
    } 
    $data_row .= '</tbody>' 
       . '</table>'; 
    echo $data_row; 
+1

'date ("F d, Y"); 'Wird funktionieren. Es gibt jedoch andere Möglichkeiten. – RepeaterCreeper

Antwort

0

Zuerst können Sie Ihre Abfrage aktualisieren, um die Ergebnisse nach Bestelldatum absteigend zu sortieren. Daher wird die letzte Bestellung zuerst angezeigt. Zum Beispiel:

$sql = "SELECT id, contract_number, property_name, property_address, city, state, zip, status, order_date FROM ".$email." ORDER BY order_date DESC"; $result = $DB_CON->query($sql); 

Zweitens als RepeaterCreeper in den Kommentaren vorgeschlagen, dass Sie diese Zeile ändern können:

. '<td>' .date("M-d-y", strtotime($row['order_date'])).'</td>' 

dazu:

. '<td>' .date("F d, Y", strtotime($row['order_date'])).'</td>' 
+0

Vielen Dank, David. Der Code funktioniert jetzt so, wie er gedacht war. – MasterJoe

+0

Gern geschehen @MasterJoe –