1

timesたとえば7:30AM、2を入力すると、3番目のボックス4:00PMの時間の差が生成されsecondsます。

問題は、実際に時差を計算するための作業方法を取得できないように見えることです。

<script language="javascript" type="text/javascript">
$(document).ready(function(){
    function UpdateHours(){ 

        var start = $("#time1").val();
        var end = $("#time2").val();

        var dtStart = new Date("7/20/2015 " + start);
        var dtEnd = new Date("7/20/2015 " + end);

        var diff = dtEnd - dtStart;

        $("#totalTime").val(diff);
    }
    $(document).on("change, keyup", "#time1", UpdateHours);
    $(document).on("change, keyup", "#time2", UpdateHours);
});
</script>  

<input id="time1" type="text" />
<input id="time2" type="text" />
<input id="totalTime" readonly="readonly" />

これは私がこれまでに試したことです。助けてもらえますか?

4

2 に答える 2

2

あなたが抱えている問題は、オブジェクトを別のオブジェクトから差し引いていることです。この場合、JavaScript が何をするかはわかりませんが、安全のために、たとえそれが機能したとしても、その動作に依存するべきではありません。あなたがすべきことはこれです:

var diff = dtEnd.getTime() - dtStart.getTime();

diffは、2 つの日付オブジェクト間のミリ秒数になります。

于 2015-07-20T17:18:29.840 に答える
1

$(document).ready(function(){
  
  var $time1 = $("#time1");
  var $time2 = $("#time2");
  var $diff = $("#totalTime");

  function updateHours(){   

        var dtStart = new Date("7/20/2015 " + $time1.val());
        var dtEnd = new Date("7/20/2015 " + $time2.val());

        var diff = dtEnd - dtStart;

        $diff.val(diff/1000);
  }
    $time1.add($time2).on("change, keyup", function(){
        if($time1.val() && $time2.val()){
            updateHours()
        }
    });
   
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="time1" type="text" placeholder="7:00 PM"/>
<input id="time2" type="text" placeholder="8:00 PM"/>
<input id="totalTime" readonly="readonly" />

于 2015-07-20T17:18:50.860 に答える