【发布时间】:2015-01-09 21:04:04
【问题描述】:
我正在开发一个网页来收集有关某人睡眠的信息。具体来说,我需要找出两个用户输入之间的时间差,这两个用户输入可能会或可能不会跨越午夜。
我对一般的编程很陌生,所以我试图继续使用我熟悉的技能,但也想知道是否有更简单的方法!
我写的代码如下:
<script type="text/javascript">
function timeSec() {
var btHours = document.getElementById('bedtimeHours').value;
if (btHours == "") {
btHours = 0;
}
var btMins = document.getElementById('bedtimeMins').value;
if (btMins == "") {
btMins = 0;
}
var btSleepTillMidnight = 0;
var btSecTotal = (btHours*3600) + (btMins*60);
document.getElementById('btSec').value = btSecTotal;
if (btHours > 12) {
btSleepTillMidnight = 24*3600 - btSecTotal;
}
if (btHours <= 12) {
btSleepTillMidnight = ( -Math.abs(btSecTotal));
}
var wtHours = document.getElementById('waketimeHours').value;
if (wtHours == "") {
wtHours = 0;
}
var wtMins = document.getElementById('waketimeMins').value;
if (wtMins == "") {
wtMins = 0;
}
var wtSecTotal = (wtHours*3600) + (wtMins*60);
document.getElementById('wtSec').value = wtSecTotal;
var diffSec = wtSecTotal + btSleepTilMidnight;
document.getElementById('diffSec').value = diffSec;
var diffHours = diffSec/3600;
document.getElementById('diffHours').value = diffHours;
}
</script>
我的 HTML 如下,其设计目的是在开发过程中查明错误:
<form method="post" action="" name="PSQI" id="PSQI">
Bedtime:
<input type="number" name="bedtimeHours" id="bedtimeHours" min="0" step="1" max="24" value=""> Hours
<input type="number" name="bedtimeMins" id="bedtimeMins" min="0" step="10" max="50" value=""> Minutes
<br>
Waketime:
<input type="number" name="waketimeHours" id="waketimeHours" min="0" step="1" max="24" value=""> Hours
<input type="number" name="waketimeMins" id="waketimeMins" min="0" step="10" max="50" value=""> Minutes
<input type="button" value="Score" onclick="timeSec();">
<br>
btSec: <input type="text" name="btSec" id="btSec" value="">
<br>
wtSec: <input type="text" name="wtSec" id="wtSec" value="">
<br>
diffSec: <input type="text" name="diffSec" id="diffSec" value="">
<br>
diffHours: <input type="text" name="diffHours" id="diffHours" value="">
</form>
【问题讨论】:
-
...你的问题是?
-
使用开发工具栏进行调试。所有主流浏览器都有这些。您可以通过按 F12 来调出它。您可以使用
console.log(something)写入控制台,这使调试更加容易。您也可以将debugger放入您的代码中。只要开发工具处于活动状态,它就会停止脚本执行并允许您逐步调试代码。 -
@mouser 非常感谢.. 对于没有明确的问题,我深表歉意.. 由于某种原因,它在我的浏览器中不起作用,在 diffSec 和 diffHours 中没有报告任何值。调试技巧虽然很棒..不知道。干杯!
-
@RoryLattimer 很高兴能帮助关注的程序员发现很棒的新工具 :)
标签: javascript function time