У меня возникают некоторые проблемы с этой функцией jscript, возвращающей NaN. Я пробовал parseInt по inTime
и outTime
, но не работает для меня. Я надеялся получить какое-то руководство.вычислить разницу во времени с 24-часовым выбором ящиков
function diffHours (h1,m1,h2,m2,t) {
var inTime = ((h1 * 60) + m1);
var outTime =((h2 * 60)+ m2);
/* Converts total in minutes to "hh:mm" format */
function toText (m) {
var minutes = m % 60;
var hours = Math.floor(m/60);
minutes = (minutes < 10 ? '0' : '') + minutes;
hours = (hours < 10 ? '0' : '') + hours;
return hours + ':' + minutes;
}
h1 = parseInt(inTime, 10);
h2 = parseInt(outTime, 10);
var diff = h2 - h1;
document.getElementById(t).value = toText(diff)
}
Я тогда 4 полей выбора в документе: час в минуту, в час, выход, минута, что выполнить эту функцию onChange
и должен вывести его на вход только для чтения с разницей во времени. Edit: вот на вход
<cfset timeHour = ['','00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23']>
<cfset timeMinute = ['','00','01','02','02','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59']>
<td><cfselect name="sun_in_hh" id="sun_in_hh" onChange="diffHours('sun_in_hh','sun_in_mm','sun_out_hh','sun_out_mm','sun_total')">
<cfloop array="#timeHour#" index="h">
<option value="#h#">#h#</option>
</cfloop>
</cfselect>
<cfselect name="sun_in_mm" id="sun_in_mm">
<cfloop array="#timeMinute#" index="m">
<option value="#m#">#m</option>
</cfloop>
</cfselect></td>
<td><cfselect name="sun_out_hh" id="sun_out_hh" onChange="diffHours('sun_in_hh','sun_in_mm','sun_out_hh','sun_out_mm','sun_total')">
<cfloop array="#timeHour#" index="h">
<option value="#h#">#h#</option>
</cfloop>
</cfselect>
<cfselect name="sun_out_mm" id="sun_out_mm">
<cfloop array="#timeMinute#" index="m">
<option value="#m#">#m#</option>
</cfloop>
</cfselect></td>
<td><cfinput type="text" name="sun_total" id="sun_total" size=5></td>
Так что вы положить в ваша функция? Откуда берутся эти ценности? Хорошо работает для меня (http://jsfiddle.net/qow7jnx0/) – putvande
см. Edit please – bWF800
Похоже, вам нужно сначала получить значения. Вы отправляете только имена переменных, а не фактические значения. – putvande