【问题标题】:PHP Foreach Loop Date Format and Reverse Order Populating DataPHP Foreach 循环日期格式和逆序填充数据
【发布时间】:2017-10-01 15:11:52
【问题描述】:

我有以下代码,它将 sql 数据填充到 html 表中。当我尝试格式化“order_date”的日期时,不知何故,我无法让它工作。这里有谁知道如何格式化日期以月日、年(例如 20015 年 5 月 3 日)格式显示?我使用的语法 date("M-d-y", strtotime($row['order_date'])) 似乎不起作用。我在下面的代码仅适用于填充数据,但不适用于我想要的 order_date 的日期格式。另外,如果我想先填充 sql 中的最后一项,如何更改代码?我现在拥有的代码将数据从第一行填充到最后,但我想将填充顺序从最后一行数据更改为第一行。有什么帮助吗?

$sql = "SELECT id, contract_number, property_name, property_address, city, state, zip, status, order_date FROM @98765430"; $result = $DB_CON->查询($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; 

【问题讨论】:

  • date("F d, Y"); 将工作。但是,还有其他方法。

标签: php


【解决方案1】:

首先,您可以更新查询以按订单日期降序排列结果。所以最近的订单将首先出现。例如:

$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);

其次,正如在 cmets 中建议的 RepeaterCreeper,您可以更改此行:

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

到这里:

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

【讨论】:

  • 非常感谢大卫。代码现在按预期方式工作。
猜你喜欢
  • 1970-01-01
  • 2019-11-20
  • 2012-10-11
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 2017-10-10
  • 1970-01-01
相关资源
最近更新 更多