【问题标题】:Change Date Format in PHP HTML form results更改 PHP HTML 表单结果中的日期格式
【发布时间】:2022-02-12 08:57:40
【问题描述】:

我刚开始学习 php,我试图研究这个问题的答案,但我找不到适合我情况的答案。请记住,我是菜鸟,所以请详细说明。

显示结果的网页:https://fireytech.com/FireytechDatabase/hello.php

我有一个 php 选择查询,它从我的 mysql 数据库中提取一个字段,其中保存了日期/时间戳。当我在我的 html 表单中获得查询的回显结果时,它会以这种格式显示此日期字段:2022-01-31 00:00:00。我希望它显示为:01/31/2022(没有时间)。下面是我的表单代码。如何更改“DateReceived”和“DateLastEdited”字段的日期格式?

<?php

require '../../db_php/dbconnection.php';

$sql = "SELECT * FROM
            Tickets 
        Left JOIN
            Clients
        ON Tickets.CustomerNumber=Clients.CustomerNumber
        JOIN Contacts
        ON Contacts.ContactID=Clients.CustomerNumber
        JOIN Equipment
        ON Equipment.ContactID=Clients.CustomerNumber
        
        WHERE Equipment.PRINT = '-1' AND Contacts.DispatchContact = '-1' AND TicketStatus = 'Active' AND NOT TicketSubStatus = 'CUSTOMER PICKUP' AND NOT TaskSubType = 'ON-SITE'
";
$result = $conn->query($sql);

echo"<table border='1'>";
echo "<tr><td>Ticket Type</td><td>Ticket Number</td><td>Date Received</td><td>Last Edited</td><td>Last Name</td><td>Followup By</td><td>Sub Status</td><td>Repair Type</td><tr>";
if ($result->num_rows > 0){
while($row = $result->fetch_assoc() ){
    echo "<tr><td>{$row['TaskSubType']}</td><td>{$row['TicketNumber']}</td><td>{$row['DateReceived']}</td><td>{$row['DateLastEdited']}</td><td>{$row['ContactLast']}</td><td>{$row['FollowupBy']}</td><td>{$row['TicketSubStatus']}</td><td>{$row['ItemType']}</td></tr>";
}
} else {
    echo "0 records";
}

echo"</table>";

$conn->close();

?>

【问题讨论】:

    标签: php html mysql echo


    【解决方案1】:

    要将日期转换为您想要的格式,只需输入

    $dr= date("Y/d/m", strtotime($row['DateReceived']));
    $dl= date("Y/d/m", strtotime($row['DateLastEdited']));
    echo "<tr><td>{$row['TaskSubType']}</td><td>{$row['TicketNumber']}</td><td>{$dr}</td><td>{$dl}</td><td>{$row['ContactLast']}</td><td>{$row['FollowupBy']}</td><td>{$row['TicketSubStatus']}</td><td>{$row['ItemType']}</td></tr>";
    

    【讨论】:

    • 这对我来说很有意义;在回显字符串之前处理日期格式并将其包含在字符串中。它工作得非常好,我真的可以复制和粘贴它!
    【解决方案2】:
    echo date_format(date_create($date),"Y-m-d");
    

    【讨论】:

      【解决方案3】:

      你可以在sql中使用date_format(DateReceived,'%m/%d/%Y'),如果你想在php中改变日期格式使用函数date('m/d/Y', strtotime($row['DateLastEdited' ]))

      sql 中的示例

      $sql = "SELECT date_format(DateReceived,'%m/%d/%Y') as DateReceived   FROM
                  Tickets 
              Left JOIN
                  Clients
              ON Tickets.CustomerNumber=Clients.CustomerNumber
              JOIN Contacts
              ON Contacts.ContactID=Clients.CustomerNumber
              JOIN Equipment
              ON Equipment.ContactID=Clients.CustomerNumber
              
              WHERE Equipment.PRINT = '-1' AND Contacts.DispatchContact = '-1' AND TicketStatus = 'Active' AND NOT TicketSubStatus = 'CUSTOMER PICKUP' AND NOT TaskSubType = 'ON-SITE'
      ";
      

      php 中的示例

      echo "<tr><td>{$row['TaskSubType']}</td><td>{$row['TicketNumber']}</td><td>{date('m/d/Y',strtotime($row['DateReceived']))}</td><td>{date('m/d/Y', strtotime($row['DateLastEdited']))}</td><td>{$row['ContactLast']}</td><td>{$row['FollowupBy']}</td><td>{$row['TicketSubStatus']}</td><td>{$row['ItemType']}</td></tr>";
      

      【讨论】:

      • 感谢您抽出宝贵时间回复。出于某种原因,这不起作用,但另一个答案确实如此,所以我很高兴继续这个问题。
      • 当使用星号获取所有字段时,您会得到一个重复的字段DateReceived。这就是为什么这不能按预期工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多