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() );
});
});