如何检查结束时间和开始时间是不是与javascript相等
Posted
技术标签:
【中文标题】如何检查结束时间和开始时间是不是与javascript相等【英文标题】:How to check if end time and start time are equal with javascript如何检查结束时间和开始时间是否与javascript相等 【发布时间】:2019-09-09 03:34:18 【问题描述】:我有一组数据,第一列显示个人行程 ID,第二列显示开始时间,第三列显示结束时间。
数据存储在 SQL server 中,使用 php fetch 数组 while 循环生成。
我想知道如何使用 javascript 检查第一行的开始时间是否等于第二行的结束时间。如果检测到结束时间和开始时间不相等,我希望 javascript 能够打印“FALSE”。任何人都可以建议吗?谢谢
Image is the output I want to achieve
以下是我的代码:
$tripdate = date("Y-m-d", strtotime($displaydate));
$vesselcde = $vesselcode."%";
$query_get_activity = " SELECT a.trip_id, b.start_time, b.end_time, c.activity_name FROM TRIP a JOIN ACTIVITY b ON a.trip_no = b.trip_no
JOIN ACTIVITY_TYPE c ON b.activity_id = c.activity_id WHERE trip_date = ? and trip_id LIKE ? ORDER BY a.trip_id";
$params_get_activity = array($tripdate, $vesselcde);
$stmt_get_activity = sqlsrv_query($conn, $query_get_activity, $params_get_activity);
while( $row = sqlsrv_fetch_array( $stmt_get_activity, SQLSRV_FETCH_ASSOC) )
$tripid = $row['trip_id'];
$starttime = $row['start_time']->format('H:i');
$endtime = $row['end_time']->format('H:i');
$activitytype = $row['activity_name'];
?>
<form class="form-inline">
<div class="timerows">
<div class="form-group">
<label for="tripid"><?php echo $tripid;?></label>
<input type="text" name="start_time" id="start_time" class="form-control mx-sm-3" value="<?php echo $starttime; ?>">
<input type="text" name="start_time" id="end_time" class="form-control mx-sm-3" value="<?php echo $endtime; ?>">
<!--<label for="activitytype"><?php echo $activitytype;?></label>-->
<input type="text" id="checktime" value="TRUE">
</div>
</div>
</form>
<?php
?>
【问题讨论】:
为什么不在创建输入的 PHP 循环中执行此操作。这些值已经在变量中,只需比较它们并根据需要设置值。 @Teemu 请正确阅读我的问题并点击图片查看我想如何比较结束时间和开始时间。您指的是在同一行中比较开始时间和结束时间。我想要的是比较第一行的开始时间和下一行的结束时间。 我的评论可能有点措辞不当,我的意思是这些值是可用的。您可以在循环之前读取第一行,并将值存储到变量中,这只是当前代码中的一个小调整。 还要注意,PHP 循环会创建多个具有相同 id 的元素,这使得 id 无用。 【参考方案1】:我对@987654321@ 不太熟悉,但我相信您可以在javascript
中轻松实现这一点。这段代码将帮助您在javascript
中获取您的值,您可以根据自己的用途在代码中使用这些值。
function myFunction()
var refTab = document.getElementById("ddReferences")
var ttl;
// Loop through all rows and columns of the table and popup alert with the value
// /content of each cell.
var prev_val;
var new_val;
for ( var i = 0; row = refTab.rows[i]; i++ )
row = refTab.rows[i];
for ( var j = 0; col = row.cells[j]; j++ )
if ( j == 1)
new_val = col.firstChild.nodeValue
if ( new_val == prev_val)
var x = document.getElementById("ddReferences").rows[i].cells;
x[3].innerhtml = "True";
else
var x = document.getElementById("ddReferences").rows[i].cells;
x[3].innerHTML = "False";
else if ( j == 2)
prev_val = col.firstChild.nodeValue
//alert(col.firstChild.nodeValue); /// this is for showing value
table, td
border: 1px solid black;
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Click the button to alert the innerHTML of the cell in the table's row.</p>
<table id='ddReferences'>
<tr>
<td>val1</td>
<td>6:20</td>
<td>6:30</td>
<td> </td>
</tr>
<tr>
<td>val2</td>
<td>6:30</td>
<td>7:30</td>
<td> </td>
</tr>
<tr>
<td>val2</td>
<td>7:40</td>
<td>8:30</td>
<td> </td>
</tr>
</table>
<br>
<button onclick="myFunction()">Try it</button>
</body>
</html>
【讨论】:
感谢您的大力帮助。但我希望 TRUE 或 FALSE 值出现在输入文本框中,而不是,我该怎么做?以上是关于如何检查结束时间和开始时间是不是与javascript相等的主要内容,如果未能解决你的问题,请参考以下文章
moment.js - 检查两个时刻是不是来自同一周,但周从周五开始到周四结束