私は自分のニーズに合わせてうまく動作する次のものを持っています:
function funLoad(str1,str3,str4)
{
var dym1 = str1.split("/");
var d=new Date();
var dym2 = d.getMonth() + 1 + "-" + d.getDate() + "-" + d.getFullYear() + " " + d.getHours() + ":" + d.getMinutes() + ":00";
//var dym2 = "6 10 2013 09:00:00";
var start = Date.parse(dym1[1] + "-" + dym1[0] + "-" + dym1[2] + " " + str3 + ":" + str4 + ":00");
var end = Date.parse(dym2);
return (start-end) / (1000*60*60);
}
$("#btn1").click(function(event){
alert(funLoad($("#txt1").val(),$("#ddlHourTime").val(),$("#ddlMinuteTime").val()));
});
ここに jsfiddle があります: http://jsfiddle.net/QTVWd/8/
これはおそらく IE8 でしか動作しないことを理解していますが、私は誰もが IE8 しか使用しないイントラネット環境で開発しているので、それは問題ではありません。それを無視して、このスクリプトは選択された日付と時刻を取得し、それを現在の日付/時刻と比較して、時間を返します。これまでのところすべて順調です。
問題は、週末をカウントすることです。開始日と終了日に週末が含まれる場合、平日の時間のみをカウントし、週末を除外するにはどうすればよいですか? たとえば、開始日が金曜日で終了日が月曜日の場合、週末の 48 時間を除いて、金曜日と月曜日の時間のみをカウントする必要があります。