用jquery比较2次

时间:2011-02-08 04:39:17

标签: javascript jquery math time parseint

提前感谢您的帮助......

我正在尝试(1)为表单生成开始时间和结束时间,(2)找到两者之间的差异,以及(3)将差异添加到新输入中。

这是我到目前为止所拥有的:

<a href="#" id="starttime">Begin time</a>
<input id="starttimeinput" name="starttimeinput" type="text" value="">
<script>
    $("#starttime").click(function () {
         var begintime = event.timeStamp;
         $("#starttimeinput").val(begintime);
    });
</script>
<a href="#" id="endtime">end time</a>
<input id="endtimeinput" name="endtimeinput" type="text" value="">
<script>
    $("#endtime").click(function () {
         var endtime = event.timeStamp;
         $("#endtimeinput").val(endtime);
    });
</script>
<input id="totaltime" name="totaltime" type="text">
<script>
    $("#totaltime").focus(function () {
       var begintime = $("#starttimeinput").val();
       var endtime = $("#endtimeinput").val();
       var totaltime = endtime - begintime;
       $("#totaltime").val(totaltime); 
     });     
</script>

第一部分有效(将时间戳输入到开始时间和结束时间输入)。我以前从未使用过数字,也无法弄清楚第二部分。出现的结果是“NaN”。

这也许有助于了解点击链接的时间应该是30秒左右......

非常感谢你帮助我们回答了很多我的问题,而不必发帖!

1 个答案:

答案 0 :(得分:0)

您需要parseInt()时间退出,否则它们只是字符串(由.val()返回)。

$("#totaltime").focus(function () {
    var begintime = parseInt($("#starttimeinput").val(), 10),
        endtime = parseInt($("#endtimeinput").val(), 10),
        totaltime = endtime - begintime;
    $("#totaltime").val(totaltime); 
 });

就个人而言,我很快就会自己存储begintimeendtime值,而不是文本输入(无论如何,用户为什么需要查看它们?)。像这样:

var begintime,
    endtime;
$("#starttime").click(function (event) {
     begintime = event.timeStamp;
     //$("#starttimeinput").val(begintime);
});

$("#endtime").click(function (event) {
     endtime = event.timeStamp;
     //$("#endtimeinput").val(endtime);
});

$("#totaltime").focus(function () {
    $("#totaltime").val(endtime - begintime); 
});

另外,我建议将jQuery代码从内联<script>标记移动到外部JS文件中。这使得更易于维护的标记和JS。只需将所有JS代码包装在文档就绪处理程序中:

$(document).ready(function () {
    /* your code here */
});

或者更简洁地说,

$(function () {
    /* your code here */
});