簡體   English   中英

使用 javascript 的表格單元格內的時間差

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM