【Sample】 ※セレクトフィールドで開始時刻と終了時刻を選択し、その時間を計算する。 ※分選択は15分ピッチとする。 ※終了時刻>開始時刻のときのみ時間計算。 ■サンプル 時刻選択: 〜 時間計算:
■HTMLサンプル
時刻選択:<br /> <select id="cmbHour1" onchange="fnTCheck()"> <option value="">開始時</option> <script type="text/javascript"> <!-- fnWriteHour() //--> </script> </select> <select id="cmbMin1" onchange="fnTCheck()"> <option value="">開始分</option> <option value="0">00</option> <option value="15">15</option> <option value="30">30</option> <option value="45">45</option> </select> 〜 <select id="cmbHour2" onchange="fnTCheck()"> <option value="">終了時</option> ... </select> <select id="cmbMin2" onchange="fnTCheck()"> <option value="">終了分</option> ... </select><br /> 時間計算:<br /> <input type="text" id="txtTimeDeff" size="20" /> |
■javascriptサンプル Tips
//◆時間計算 function fnTCheck(){ with(document){ var hour1=getElementById("cmbHour1").value; //選択開始時 var min1=getElementById("cmbMin1").value; //選択開始分 var time1=eval(hour1)*60+eval(+min1); var hour2=getElementById("cmbHour2").value; //選択開始時 var min2=getElementById("cmbMin2").value; //選択開始分 var time2=eval(hour2)*60+eval(+min2); if((hour1!="")&&(min1!="")&&(hour2!="")&&(min2!="")){ if (time2>time1){ time=time2-time1; //分に変換して時間差(分)を取得 time_h=Math.floor(time/60); //時間差(分)から時を取得 if(time_h<10){ //ゼロ付数値 time_h="0"+time_h; } time_m=time-time_h*60; //時間差(分)から残りの分を取得 if(time_m<10){ time_m="0"+time_m; } getElementById("txtTimeDeff").value=time_h+":"+time_m+"("+time+"分)"; }else{ getElementById("txtTimeDeff").value=""; } }else{ getElementById("txtTimeDeff").value=""; } } } //◆セレクトフィールド時刻バインド function fnWriteHour(){ var valStart=0; var valEnd=23; var hour; for(i=valStart;i<=valEnd;i++){ if(i<10){ hour="0"+i; }else{ hour=i; } document.write("<option value='"+hour+"'>"+hour+"</option>\n"); } } |