javascript - Jquery 或 JavaScript 在 html 表中添加计算列

标签 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;?>

最佳答案

尝试使用另一个循环将 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;?>

关于javascript - Jquery 或 JavaScript 在 html 表中添加计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54550380/

相关文章:

php - 长轮询超时问题

javascript - "Flood fill"带有 Javascript 的父 DIV 中的子 DIV 元素

php - 使用 Propel 获取最后 5 项 sql 结果

php - AJAX - 打印页面内容

jquery - 如何在包含的 HTML 文件中添加 AngularJS?

javascript - javascript的src属性中的 `//`有什么作用?

javascript - 有条件链接 promise - 如何避免代码重复?

php CLI 模式 -f 标志

javascript - 复选框 .change() 上的触发事件,但 *在 * 复选框显示为选中状态之后?

javascript - 按顺序将段落附加到图像属性? (第 1 到第 1,第 2 到第 2 ...第 n 到第 n 个)JQUERY