[英]Javascript - How can I work out the difference between two given times? (hours-minutes)
我有兩組“選擇”元素,用戶可以在其中兩次輸入。 看起來像這樣:
Start:
[hour] [minute] [meridian]
End:
[hour] [minute] [meridian]
我正在嘗試利用這些時間來找出差異。 這樣我就可以輸出:
Difference: 1.25 HRS
您可能知道,十進制格式表示1小時15分鍾。 用戶還可以單擊一個復選框,如果選中該復選框,將花費30分鍾。 這是我當前的代碼:
var startHours = parseInt($start.find('.times:eq(0)')[0].value);
var startMinutes = parseInt($start.find('.times:eq(1)')[0].value);
var startMeridian = $start.find('.times:eq(2)')[0].value
if (startMeridian == 'PM')
startHours += 12;
var finishHours = parseInt($finish.find('.times:eq(0)')[0].value);
var finishMinutes = parseInt($finish.find('.times:eq(1)')[0].value);
var finishMeridian = $finish.find('.times:eq(2)')[0].value
if (finishMeridian == 'PM')
finishHours += 12;
// compute the difference
var completeHours = finishHours - startHours;
var completeMinutes = finishMinutes - startMinutes;
var newTime = 0;
if (completeHours < 0 || completeMinutes < 0)
newTime = '0.0';
else
newTime = completeHours + '.' + completeMinutes;
var hadBreak = $parent.parents('tr').next('tr').find('.breakTaken')[0].checked;
if (hadBreak)
{
time = newTime.split('.');
hours = time[0];
minutes = time[1];
minutes = minutes - 30;
if (minutes < 0)
{
minutes = 60 - (minutes * 1);
hours = hours - 1;
}
newTime = (hours < 0) ? '0.0' : hours + '.' + minutes;
}
$parent.parents('tr').next('tr').find('.subtotal')[0].innerHTML = newTime;
total += parseFloat(newTime);
失敗了...我在做什么錯?
為了節省您的麻煩,我建議使用Date對象,這非常方便:
var startDate = new Date(year, month, date, hour, minute, second, millisecond);
var endDate = new Date(year, month, date, hour2, minute2, second2, millisecond2);
// You can skip hours, minutes, seconds and milliseconds if you so choose
var difference = endDate - startDate; // Difference in milliseconds
從那里您可以計算出這兩個日期之間經過的天數,小時數和分鍾數。
線
newTime = (hours < 0) ? '0.0' : hours + '.' + minutes;
是錯誤的-分鍾可能是15分鍾,但您希望將其打印出來。 因此,您需要:
var MinutesDisplay = minutes/60*100;
newTime = (hours < 0) ? '0.0' : hours + '.' + (MinutesDisplay.toFixed(0));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.