【My Script】 sample:javascript

セレクトフィールドで選択した時間を計算する

◆スポンサー【dblpar.com】(ダブルパー本舗)をみる  ◆このページのホーム【My Script】を全部をみる

Sample サンプルとTips

【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");
  }
}
【更新記録】
※(2008.03.20) v1.01 作成しました。
【AccessCounter】 
アクセスカウンター
Copyright(C) 2007-  ダブルパー本舗 All Rights Reserved.