Jquery или JavaScripts для добавления столбца расчета в таблицу html

Я создаю таблицу HTML с запросом PHP и Mysql (таблица выглядит так 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 или Javascripts, чтобы вычесть столбец Statestarttime из 1-й строки со столбцом Stateendtime из 2-й строки, чтобы узнать разницу во времени

пример ожидаемых результатов

StateStarTtime    StateEndTime   Min Difference 

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

Я могу найти так много примеров и помощи для вычитания StateStarTtime из StateEndTime в первой строке, но я хочу вычесть значение ячейки 1-й строки StateStarTtime из значения ячейки 2-й строки StateEndTime, чтобы найти разницу в минутах.

Я новичок в 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;?>

Если вы создаете данные PHP в виде таблицы, было бы далеко более целесообразно выполнять вычисления там, а не в JS на стороне клиента.

Rory McCrossan 06.02.2019 10:36

Я открыт для предложений о том, как я могу это сделать. Я также задал вопрос об этом, но не смог заставить его работать правильно (stackoverflow.com/questions/54474772/…)

yatendra singh ranawat 06.02.2019 10:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
220
2

Ответы 2

вы можете просто сделать это в PHP, используя его

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

Это даст мне минутную разницу StateStarTtime и StateEndtime в той же строке, которую я хочу вычесть из значения ячейки 1-й строки StateStarTtime из значения ячейки 2-й строки StateEndTime и так далее, чтобы найти минутную разницу.

yatendra singh ranawat 06.02.2019 10:50

попробуйте использовать сохранение 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;?>

Я получаю фатальную ошибку: невозможно использовать временное выражение в контексте записи

yatendra singh ranawat 06.02.2019 11:23

Я получаю фатальную ошибку: невозможно использовать временное выражение в контексте записи (во 2-й строке <?php startTime[] = $row['StateStarttime'];?>)

yatendra singh ranawat 06.02.2019 12:01

Извините! есть опечатка, пожалуйста, проверьте мой отредактированный ответ

Chirag 06.02.2019 12:06

Теперь я могу видеть страницу, но таблица не создана. Я также исправил отсутствующий $ в $endTime[$i+1]), но не повезло

yatendra singh ranawat 06.02.2019 13:43

Другие вопросы по теме