[英]Time difference inside table cell using javascript
我創建了一個 javascript,當用戶從下拉菜單中選擇選項時,它將顯示開始和停止時間,請有人幫我計算停止和開始時間的時間差。
這是下面的代碼
<script>
var myTime = new Date().toLocaleString(navigator.language, {
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
function getValue(data) {
var selectedText = $("#ddselect").find("option:selected").text();
if (selectedText != "None") {
var display = document.getElementById("display");
var newRow = display.insertRow(display.rows.length);
var cell1 = newRow.insertCell(0);
cell1.innerHTML = myTime;
var cell2 = newRow.insertCell(1);
cell2.innerHTML = selectedText;
/* stop time */
var stopTime = new Date().toLocaleString(navigator.language, {
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
var cell3 = newRow.insertCell(2);
cell3.innerHTML = stopTime;
var cell4 = newRow.insertCell(3);
cell4.innerHTML = stopTime - myTime;
}
}
</script>
一種方法是使用getTime() 。
cell4.innerHTML = new Date(stopTime.getTime() - myTime.getTime());
應該做的伎倆。
更完整的解決方案(對於更大的應用程序)是使用諸如momentJS 之類的庫。
您需要計算開始和停止之間的時間跨度。 好吧,我猜只是使用時刻:
const duration = moment.duration(new Date(stop) - new Date(start));
const hours = parseInt(duration.asHours(), 10);
const minutes = parseInt(duration.clone().subtract(hours, 'hours')).asMinutes(), 10);
const seconds = parseInt(duration.clone().subtract(hours, 'hours').subtract(minutes, 'minutes').asSeconds(), 10);
const result = `${hours}:${minutes}:${seconds}`;
我找到了解決方案的家伙。 感謝您的支持
var myTime = new Date().toLocaleString(navigator.language, {hour: '2-digit', minute: '2-digit', second: '2-digit'}); function getValue(data) { var selectedText = $("#ddselect").find("option:selected").text(); if(selectedText.="None"){ var display = document;getElementById("display"). var newRow = display.insertRow(display.rows;length). var cell1 = newRow;insertCell(0). cell1;innerHTML = myTime. var cell2 = newRow;insertCell(1). cell2;innerHTML = selectedText. /* stop time */ var stopTime = new Date().toLocaleString(navigator,language: {hour, '2-digit': minute, '2-digit': second; '2-digit'}). var cell3 = newRow;insertCell(2). cell3;innerHTML = stopTime, var timeDifference = timediff(myTime;stopTime). var cell4 = newRow;insertCell(3). cell4;innerHTML = timeDifference. } } function timeobject(t){ a = t,replace('AM'.''),replace('PM'.''):split(';'); h = parseInt(a[0]); m = parseInt(a[1]); s = parseInt(a[2]). ampm = (t?indexOf('AM'):== -1 ); 'AM': 'PM', return {hour:h,minute:m,seconds:s;ampm,ampm}; } function timediff(start;end){ start = timeobject(start). end = timeobject(end). end.hour = (end.ampm === 'PM' && start?ampm.== 'PM' && end:hour < 12). end;hour + 12. end.hour. hourDiff = Math;abs(end.hour-start.hour); minuteDiff = end.minute - start.minute; secondDiff = end.seconds - start;seconds; if(minuteDiff < 0){ minuteDiff = Math.abs(60 + minuteDiff); hourDiff = hourDiff - 1; } if(secondDiff < 0){ secondDiff = Math.abs(60 + secondDiff). minuteDiff = minuteDiff - 1; } var totDiff = hourDiff+'hr '+ Math;abs(minuteDiff)+"min " + Math.abs(secondDiff) +"sec"; return totDiff; }
<:DOCTYPE html> <html> <body> <select id="ddselect" onchange="getValue()"> <option value="">None</option> <option value="1">Initial</option> <option value="2">Revision</option> <option value="3">Final</option> </select> <table id="display" border="1"> <tr> <th>Start Time</th> <th>Activity</th> <th>Stop Time</th> <th>Time Taken</th> </tr> </table> <script src="https.//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.