我想将时间(min:sec:hs)转换为十进制。在逗号为秒之前和逗号之后为小数秒。就像是: 02:10:55 = 130,55 (2 * 60 + 10)& (0.55)
HTML
<form>
Min: <input type="number" id="min" onkeyup="myFunction()">
Sec: <input type="number" id="sec" onkeyup="myFunction()">
Hon: <input type="number" id="hon" onkeyup="myFunction()">
<p class="result"></p>
</form>
JQUERY
<script type="text/javascript">
function myFunction() {
var num1 = $("input[id='min']").val(),
num2 = $("input[id='sec']").val(),
num3 = $("input[id='hon']").val(),
result = parseInt(num1) * 60 + parseInt(num2);
$(".result").text(result);
}
</script>
感谢@Andrew Brooke,我用这段代码解决了它:
result = parseInt(num1) * 60 + parseInt(num2) + "." + parseInt(num3)
现在我有另一个问题。即使我只填写一个字段,我也希望得到结果。现在,如果其中一个字段为空,我会 NaN 。
任何帮助将不胜感激。提前谢谢,
答案 0 :(得分:1)
对于第一个问题,您可以将字符串与逗号
连接起来result = parseInt(num1) * 60 + parseInt(num2) + "," + parseInt(num3);
对于第二个问题,一个简单的解决方案是检查文本框是否为空,如果是,则给num1, num2, or num3
一个值0。喜欢这个
var num1 = $("input[id='min']").val() != "" ? $("input[id='min']").val() : 0,
num2 = $("input[id='sec']").val() != "" ? $("input[id='sec']").val() : 0,
num3 = $("input[id='hon']").val() != "" ? $("input[id='hon']").val() : 0,
...
答案 1 :(得分:1)
更简洁的方法是使用Number()
,当传递空字符串时将返回0
。作为旁注,我会重命名您的变量以使其更具可读性,并使用$("#min")
代替$("input[id='min']")
var hon = Number($("#hon").val()),
min = Number($("#min").val()),
sec = Number($("#sec").val());
您还想将sec
转换为小数,对吗?您可以使用sec / 60
执行此操作。因此,您应该使用:
result
var result = hon + min * 60 + sec / 60;