Php 行条件格式

Php 行条件格式,php,html,mysql,datetime,Php,Html,Mysql,Datetime,我需要的解决方案行条件格式(背景)的基础上,现在的时间和时间差,48小时前,84 例如: 如果在单元格中是今天的日期和时间13:00/背景色=#ffffff 如果单元格中的值为-48小时,则颜色不同 如果单元格中的值为-84,则颜色不同。 这是我的 <?php $con = mysqli_connect("localhost", "test", "test"); if (!$con) { die("Database Connection failed".mysql

我需要的解决方案行条件格式(背景)的基础上,现在的时间和时间差,48小时前,84 例如: 如果在单元格中是今天的日期和时间13:00/背景色=#ffffff 如果单元格中的值为-48小时,则颜色不同 如果单元格中的值为-84,则颜色不同。 这是我的

<?php

$con = mysqli_connect("localhost", "test", "test");
    if (!$con) {
        die("Database Connection failed".mysqli_error());
    } else {
        $db_select = mysqli_select_db($con, 'test2');
        if (!$db_select) {
            die("Database selection failed".mysqli_error());
        } else {
        }
    }

$records = mysqli_query($con, "SELECT * FROM test2 ORDER by user_Name");
$timenow = new DateTime();

?>

<!DOCTYPE html>
<html>
<body> 

<table width="500" border="2" cellpadding="2" cellspacing='1'>
    <tr bgcolor="#2ECCFA">
        <th>User</th>
        <th>Device</th>
        <th>Last Contact</th>
    </tr>



<?php

if ($records) {
    while ($row = mysqli_fetch_assoc($records)) {
        $calc = $timenow - $row['date'];
        if ($calc > 12000) {
            $rowClass = "oldOrder";
        } else {
            $rowClass = "normalOrder";
        }
        echo '<tr class="'.$rowClass.'"><td>';
        echo $row['user_name'] . '';
        echo '</td><td>';
        echo $row['Device_ID'] . '';
        echo '</td><td>';
        echo $row['Last_Contact'] . '';
        echo '</td></tr>';
    }
}

?>
    <a href=”rowClass.css” rel=”stylesheet” type=”text/css”>
</table>

您可以使用PHP中的函数和MySQL中的函数,将所有时间信息转换为以下格式:

<?php

$con = mysqli_connect("localhost","test","test" 'test2');

if ($con->connect_error) {
    die('Connect Error: ' . $con->connect_error);
}

$records = mysqli_query($con,"SELECT *, UNIX_TIMESTAMP(date) AS u_date FROM test2 ORDER by user_Name");
$timenow = time();

?>

<!DOCTYPE html>
<html>
<body> 

<table width="500" border="2" cellpadding="2" cellspacing='1'>
    <tr bgcolor="#2ECCFA">
        <th>User</th>
        <th>Device</th>
        <th>Last Contact</th>
    </tr>

<?php

if ($records) {
    while ($row = mysqli_fetch_assoc($records)) {
        $calc = $timenow - $row['u_date'];
        if ($calc > 12000) {
            $rowClass = "oldOrder";
        } else {
            $rowClass = "normalOrder";
        }
        echo '<tr class="'.$rowClass.'"><td>';
        echo $row['user_name'] . '';
        echo '</td><td>';
        echo $row['Device_ID'] . '';
        echo '</td><td>';
        echo $row['Last_Contact'] . '';
        echo '</td></tr>';
    }
}

?>
    <a href="rowClass.css" rel="stylesheet" type="text/css">
</table>

使用者
装置
最后联系

您需要对苹果进行比较。 如果MySQL日期字段的类型为date/datetime,则可以将其作为参数传递给datetime并比较对象:

$dateToCompare = new \DateTime("-3 days"); // 3 days ago
while ($row = mysqli_fetch_assoc($records)) {
    if ($dateToCompare > (new \DateTime($row['date']))) {
        $rowClass = "oldOrder";
    } else {
        $rowClass = "normalOrder";

有趣的您正在按用户名查询as
ORDER
,但稍后,您将使用带有所有小写字母的
$row['user\u Name']
。这可能是一个问题。检查查询中是否有错误,您没有这样做。您使用的连接错误函数不正确,您需要使用的是此处显示的可能重复的
mysqli\u error()
该函数需要数据库连接。您使用的连接错误函数不正确,和作品一样。也不要把整件事都抄到你的答案上。@Funk 49谢谢你指出这一点。我把注意力集中在日期问题上,我将更正答案。“”<我刚刚在代码末尾发现了这些问题;卷曲的引号应该是规则的,如
。整个事情正在变得越来越大;OP的部分开始有点混乱。为什么它被否决了?这是另一个解决方案的替代方案。
$dateToCompare = new \DateTime("-3 days"); // 3 days ago
while ($row = mysqli_fetch_assoc($records)) {
    if ($dateToCompare > (new \DateTime($row['date']))) {
        $rowClass = "oldOrder";
    } else {
        $rowClass = "normalOrder";