简体   繁体   English

使用 javascript 的表格单元格内的时间差

[英]Time difference inside table cell using javascript

I have created a javascript that will display start and stop time when the user choose the option from dropdown menu, please some one help me how to calculate the time difference of stop and start time.我创建了一个 javascript,当用户从下拉菜单中选择选项时,它将显示开始和停止时间,请有人帮我计算停止和开始时间的时间差。

here is below code这是下面的代码

<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>

One way would be to use getTime() .一种方法是使用getTime()

cell4.innerHTML = new Date(stopTime.getTime() - myTime.getTime()); Should do the trick.应该做的伎俩。

A more complete solution (for a larger application) would be to use a lib such as momentJS .更完整的解决方案(对于更大的应用程序)是使用诸如momentJS 之类的库。

You need to calculate duration of time span between start and stop.您需要计算开始和停止之间的时间跨度。 Well just use moment, I guess:好吧,我猜只是使用时刻:

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}`;

I found the solution guys.我找到了解决方案的家伙。 Thanks for the support感谢您的支持

 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