jQuery或JavaScripts在html表中添加计算列

时间:2019-02-06 09:35:14

标签: javascript php jquery html

我正在使用PHP和Mysql查询生成HTML表(表看起来像https://ibb.co/2k8XbbZ

DB ID   EmpID   Date        Username    Computername    State   Minutesatstate  Statestarttime  Stateendtime        Timestamp
704634  303836  02-06-2019  user        PC-818          Idle    2               13:44           13:46               2019-02-06 13:46:46
704599  303836  02-06-2019  user        PC-818          Active  16              13:28           13:44               2019-02-06 13:44:46
704340  303836  02-06-2019  user        NIPL-1220       Active  2               13:27           13:28               2019-02-06 13:28:48
704313  303836  02-06-2019  user        PC-818          Active  13              13:15           13:27               2019-02-06 13:27:31

我想用Jquery或Javascript添加另一列以将第一行的Statestarttime列与第二行的Stateendtime列相减以找出时差

预期结果示例

StateStarTtime    StateEndTime   Min Difference 

03:57             03:58          00:03
03:53             03:54          00:04
03:46             03:49          null

我能够找到很多示例,并帮助从第一行的StateEndTime中减去StateStarTtime,但我想从StateEndTime的第二行单元值中减去StateStarTtime的第一行单元值来找到分钟差。

我是HTML和PHP的初学者,但是对JS / JQ来说是全新的,因此,我对如何做到这一点的任何方向都非常感激。以下是我正在使用的PHP和HTML代码段。让我知道您是否需要完整的代码。

            <?php while($row = mysqli_fetch_array($search_result)):?>

            <tr>
                <td align="Center"><?php echo $row['id'];?></td>
                <td align="Center"><?php echo $row['EmpID'];?></td>
                <td align="Center"><?php echo $row['Date'];?></td>
                <td align="Center"><?php echo $row['Username'];?></td>
                <td align="Center"><?php echo $row['Computername'];?></td>
                <td align="Center"><?php echo $row['State'];?></td>
                <td align="Center"><?php echo $row['MinutesatState'];?></td>
                <td align="Center"><?php echo $row['StateStarttime'];?></td>
                <td align="Center"><?php echo $row['StateEndtime'];?></td>
                <td align="Center"><?php echo $row['Timestamp'];?></td>


            </tr>
            <?php endwhile;?>

2 个答案:

答案 0 :(得分:1)

尝试使用另一个循环将StateStarTtime和StateEndTime存储在数组中,然后 计算如下,因为您无法在单循环中获取下一行的值

<?php while($row = mysqli_fetch_array($search_result)):?>
    <?php $startTime[] =  $row['StateStarttime'];?>
    <?php $endTime[] = $row['StateEndtime'];?>
<?php endwhile;?>
<?php 
    $i = 0;
    while($row = mysqli_fetch_array($search_result)):?>
        <tr>
            <td align="Center"><?php echo $row['id'];?></td>
            <td align="Center"><?php echo $row['EmpID'];?></td>
            <td align="Center"><?php echo $row['Date'];?></td>
            <td align="Center"><?php echo $row['Username'];?></td>
            <td align="Center"><?php echo $row['Computername'];?></td>
            <td align="Center"><?php echo $row['State'];?></td>
            <td align="Center"><?php echo $row['MinutesatState'];?></td>
            <td align="Center"><?php echo $row['StateStarttime'];?></td>
            <td align="Center"><?php echo $row['StateEndtime'];?></td>
            <td align="Center"><?php echo $row['Timestamp'];?></td>
            //your calculation goes here like diff



            <td align="Center">
               <?php 
                   $mycalc = ($startTime[$i] - endTime[$i+1]);   
                    echo $mycalc;
                ?>
            </td>
        </tr>
        $i++;
<?php endwhile;?>

答案 1 :(得分:0)

您可以通过使用PHP来简单地完成它

 <td align="Center"><?php echo($row['StateEndtime'] - $row['StateStarTtime ']) ?></td>