1

2回の経過時間を計算しようとしています。PMからAMまでを計算すると、負の結果が得られるため、正しい経過時間を計算するには、負の数に12時間を追加する必要があります。このために、条件を追加する必要がありますif ($some_result < 0)。phpでは動作しますがjsでは動作しません。理由がわかりません。

デモ: http: //jsfiddle.net/wH7sC/1/

function calculateTime() { //gets time elapsed between 2 time marks

            var valuestart = $("select[name='timestart']").val();
            var valuestop = $("select[name='timestop']").val();

             //create date format          
             var timeStart = new Date("01/01/2007 " + valuestart).getHours();
             var timeEnd = new Date("01/01/2007 " + valuestop).getHours();

             var hourDiff = timeEnd - timeStart;      

              if ( hourDiff < 0 ) { //this is not working
                 hourDiff += 12;
             }

             return hourDiff;

}



//prepare function on load
$(document).ready(function() {
    $("select").change(calculateTime);
    calculateTime();
});



//execute function when changing select options
$(function() {
    $("select").change(function() {
        $( "#result" ).val( calculateTime() );
    });
});
4

1 に答える 1

4

それはif失敗したステートメントではありません。12ではなく24を追加する必要があります。

http://jsfiddle.net/sparebyte/wH7sC/2/

Chrome、Firefox、またはIE9をインストールし、javascript開発者コンソールを開いて、このconsole.log(...)機能を利用することをお勧めします。IE9の使用はお勧めしません。その出力は、私が欲しくなるものです。

于 2012-06-15T00:31:34.120 に答える