如果给定时间等于或高于当前时间,则尝试更改表格的颜色

Posted

技术标签:

【中文标题】如果给定时间等于或高于当前时间,则尝试更改表格的颜色【英文标题】:Trying to change the color of table if the given time is equal or higher than current time 【发布时间】:2019-07-30 15:17:40 【问题描述】:

我有一个表格,您可以在其中输入给定时间,例如 12:30。

默认表格颜色为蓝色,但如果当前实时时间为 12:30 或以上(例如:12:40),我希望它改变颜色。

我需要从数据库中获取给定的时间(已经管理好了),但下一部分是获取当前时间,如果它等于或高于输入时间,则整个表的颜色会改变

(Inntid 是您输入自己时间的值)

html

<table>
    <tr>
        <th>Båt ut</th>
        <th>Båt inn</th>
        <th>Båtnr</th>
        <th>Fornavn</th>
        <th>Etternavn</th>
        <th>Tid</th>
        <th>Kr</th>
    </tr>

CSS:

table 
    color: blue;
outline-style: solid;
width: 100%;
font-family: monospace;
font-size: 25px;
text-align:left;



  th 
color: red;
font-family: monospace;
font-size: 25px;
text-align:left;
  

php

$sok = @$_POST['searchh'];
$sql = "SELECT utleid, inntid, baatnr, fornavn, etternavn, tid, kr FROM     utleie WHERE baatinn = '0' ORDER BY id desc";

$result = $conn-> query($sql);


if ($result-> num_rows > 0) 
    while ($row = $result-> fetch_assoc()) 
        echo "<tr><td>". 
        $row["utleid"] ."</td><td>".
        $row["inntid"] ."</td><td>".
        $row["baatnr"] ."</td><td>". 
        $row["fornavn"] ."</td><td>". 
        $row["etternavn"] ."</td><td>". 
        $row["tid"] ."</td><td>".
        $row["kr"] ."</td></tr>"; 
    
echo "</table>";

else 
    echo "0 results";


echo $row;

$conn-> close();

?>

</table>

【问题讨论】:

你尝试过使用 javascript 吗?我会是你的路 我发现我必须使用 javascript。尝试了一些东西但彻底失败了:P 你不需要 JS。使用 PHP 来执行此操作,您将类设置为页面加载,并且不依赖于在加载后呈现表格的部分。我会说使用 JS 比在 PHP 中加载结果时做更多的工作。 【参考方案1】:

如果条件为真,则将您的 CSS 类定义为您想要的任何内容,然后检查 $row['tid'] 的时间是否等于或高于当前日期 - 如果为真,则将该类添加到您的 @ 987654323@元素。

CSS 类似于

.future_time 
    background-color: red;

你的 PHP 会是这样的,

<?php 
$sok = @$_POST['searchh'];
$sql = "SELECT utleid, inntid, baatnr, fornavn, etternavn, tid, kr FROM utleie WHERE baatinn = '0' ORDER BY id desc";

$result = $conn-> query($sql);


if ($result-> num_rows > 0) 
    echo '<table>';
    $now = new DateTime();
    while ($row = $result-> fetch_assoc()) 
        $tid = new DateTime($row["tid"]);
        $tid_class = $tid >= $now ? 'future_time' : '';
        ?>
        <tr>
            <td><?php echo $row["utleid"]; ?></td>
            <td><?php echo $row["inntid"]; ?></td>
            <td><?php echo $row["baatnr"]; ?></td>
            <td><?php echo $row["fornavn"]; ?></td>
            <td><?php echo $row["etternavn"]; ?></td>
            <td class="<?php echo $tid_class; ?>"><?php echo $tid ?></td>
            <td><?php echo $row["kr"]; ?></td>
        </tr>
        <?php 
    
    echo "</table>";
 else 
    echo "0 results";

$conn-> close();

【讨论】:

嗯,好像没用。可能是因为 DateTime() 获得的值不仅仅是小时和分钟。还是我错了? DateTIme 类非常聪明。 $row['tid']的实际值是多少,是什么格式的? 当您说“似乎不起作用”时,您需要更具体一些。会发生什么,是否出现任何错误(如果没有,您是否正在检查并记录它们?) 我不得不去上班,但我收到了一个很长的错误代码。我回家时检查一下。 从this sandbox 可以看出,DateTime 非常聪明,并且会发现您只给它时间(它会默认为 1970 年 1 月 1 日的日期,但这无关紧要)。显示您的错误,没有它就不可能提供帮助.. :-)

以上是关于如果给定时间等于或高于当前时间,则尝试更改表格的颜色的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 雄辩,其中日期等于或大于 DateTime

如果属性值= [重复],则jquery更改类

更新连接中使用的列

如何更改表格视图中的标签文本颜色(存储在数组中的数据)

Swift3:如果为空则隐藏 UITableView

指定的目标 Flash Player 版本 11.1.0.0 应等于或高于 Flex SDK 所需的最低版本 23.0.0.0