In Php Controller Code 'date_added' ist bereits da und ich habe 'date_sla' für das aktuelle Datum erstellt. In meinem Out-Put einzeln funktionieren beide gut, aber wenn ich den Unterschied zu berechnen, ist das Ergebnis in Ordnung innerhalb des Monats. wenn Monat ändert es negative Zahlen wie (2017.03.01) zeigt - (31-12-2016) = -28 TagePhp Timestamp zeigt negative Werte bei Monatswechsel
foreach ($results as $result) {
$action = array();
$action[] = array(
'text' => $this->language->get('text_view'),
'href' => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL')
);
if (strtotime($result['date_added']) > strtotime('-' . (int)$this->config->get('config_order_edit') . ' day')) {
$action[] = array(
'text' => $this->language->get('text_edit'),
'href' => $this->url->link('sale/order/update', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL')
);
}
$this->data['orders'][] = array(
'order_id' => $result['order_id'],
'customer' => $result['customer'],
'status' => $result['status'],
'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']),
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
'date_sla' => date($this->language->get('date_format_short'), time()),
'date_modified' => date($this->language->get('date_format_short'), strtotime($result['date_modified'])),
'selected' => isset($this->request->post['selected']) && in_array($result['order_id'], $this->request->post['selected']),
'action' => $action
);
}
Html-Code
<td class="right"><?php echo $order['date_sla'] - $order['date_added']." days";?></td>
Welcher Teil von Ihnen dachte, dass eine Subtraktion auf 2 Saiten jemals eine gute Idee wäre. Sie erhalten 28 von dieser Subtraktion, weil '3 - 31 '' -28 'ist. Wenn Sie Mathe für Strings ausführen, wird die Zeichenkette in eine Zahl umgewandelt, bis sie einen nicht numerischen Wert (dh das erste Leerzeichen oder' -') in der Zeichenkette findet daher '3 - 31' – RiggsFolly
Ich vermute auch, dass Sie die Daten als TEXT oder VARCHAR in Ihrer Datenbank gespeichert haben. Starten Sie erneut und verwenden Sie DATETIME- oder TIMESTAMP-Datentypen für Datum und Uhrzeit. Nur bei Bedarf in eine Zeichenfolge in der Präsentationsebene konvertieren – RiggsFolly
Ich habe Ihren Standpunkt verstanden. vielleicht habe ich diesen $ order ['date_sla'] an falscher Stelle erstellt. gib mir etwas Zeit, ich werde es noch einmal überprüfen. Und es macht mir nichts aus, wenn irgendwelche dummen Fehler von mir gemacht werden. Ich bin Anfänger in PHP. Danke für Ihre Hilfe. –