javascript - How to get time in select box with half hour interval in jquery - Stack Overflow

I am not getting 23:30 in option of select box. Can anybody tell me the correct way to add with 30 minu

I am not getting 23:30 in option of select box. Can anybody tell me the correct way to add with 30 minute interval in option.

jQuery(document).ready(function() {
  var hr = "00";
  var mi = "00";
  var count = 0;
  for (hr = "0"; hr < 24; hr++) {
    if (hr < 10) {
      apd = "0";
    } else {
      apd = ""
    }
    if (count % 2 == 0) {
      mi = "00";

      jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr + ':' + mi + '">' + apd + hr + ':' + mi + '</option>');
    } else {
      hr--;
      mi = "30";

      jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr + ':' + mi + '">' + apd + hr + ':' + mi + '</option>')
    }
    count++;
  }
});
<script src=".1.1/jquery.min.js"></script>

<div>
  <select name="bmg_monday_start_hour" id="bmg_monday_start_hour" class="form-control bmg-hrs-mins-input"></select>
</div>

I am not getting 23:30 in option of select box. Can anybody tell me the correct way to add with 30 minute interval in option.

jQuery(document).ready(function() {
  var hr = "00";
  var mi = "00";
  var count = 0;
  for (hr = "0"; hr < 24; hr++) {
    if (hr < 10) {
      apd = "0";
    } else {
      apd = ""
    }
    if (count % 2 == 0) {
      mi = "00";

      jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr + ':' + mi + '">' + apd + hr + ':' + mi + '</option>');
    } else {
      hr--;
      mi = "30";

      jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr + ':' + mi + '">' + apd + hr + ':' + mi + '</option>')
    }
    count++;
  }
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <select name="bmg_monday_start_hour" id="bmg_monday_start_hour" class="form-control bmg-hrs-mins-input"></select>
</div>

Share Improve this question edited Jul 29, 2017 at 13:18 H77 5,9672 gold badges28 silver badges40 bronze badges asked Jul 29, 2017 at 12:59 Abhilash NarayanAbhilash Narayan 501 silver badge14 bronze badges 1
  • 1 I first wondered why youre posting a code block full of newlines. Then realized that theres code far far right from screen... My point is: please fix your formatting... – Jonas Wilms Commented Jul 29, 2017 at 13:09
Add a ment  | 

4 Answers 4

Reset to default 4

You could remove the logic around count.

e.g.

let $select = jQuery("#bmg_monday_start_hour");

for (let hr = 0; hr < 24; hr++) {

  let hrStr = hr.toString().padStart(2, "0") + ":";

  let val = hrStr + "00";
  $select.append('<option val="' + val + '">' + val + '</option>');

  val = hrStr + "30";
  $select.append('<option val="' + val + '">' + val + '</option>')

}
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <select name="bmg_monday_start_hour" id="bmg_monday_start_hour" class="form-control bmg-hrs-mins-input"></select>
</div>

you can achive that in few lines using array of hr and array of mi looping through hr array and append option

$(document).ready(function() {
var hr=['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
var mi=['00','30'];
for( i=0;i<hr.length;i++){
$("#bmg_monday_start_hour").append('<option val="' + hr[i]  + ':' + mi[0] + '">'+ hr[i] + ':' + mi[0] + '</option>');									
$("#bmg_monday_start_hour").append('<option val="' + hr[i]  + ':' + mi[1] + '">' + hr[i] + ':' + mi[1] + '</option>');
								}
              })
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<select name="bmg_monday_start_hour" id="bmg_monday_start_hour" class="form-control bmg-hrs-mins-input">
                        </select>
                        </div>

jQuery(document).ready(function () {
    var hr = "00";
    var mi = "00";
    var count = 0;
    var apd = "0";

    for (hr = "0"; hr <= 24; hr++) {
        if (hr <= 10) {
            apd = "0";
        } else {
            apd = "";
        }
        if (count % 2 == 0) {
            mi = "00";

            if (hr != "24" && hr != "10") {

                jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr + ':' + mi + '">' + apd + hr + ':' + mi + '</option>');

            }
            else if (hr == "10") {

                jQuery("#bmg_monday_start_hour").append('<option val="' + hr + ':' + mi + '">' + hr + ':' + mi + '</option>');

            }

        } else {
            hr--;
            mi = "30";

            jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr + ':' + mi + '">' + apd + hr + ':' + mi + '</option>')
        }
        count++;
    }
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <select name="bmg_monday_start_hour" id="bmg_monday_start_hour" class="form-control bmg-hrs-mins-input"></select>
</div>

Well

for(hr = "0"; hr < 24; hr++) {
    // Lets say hr == 23 here, and following condition is true (thus adding 23:00)
    if(count%2==0) {
        // ...
    }
}

Then next iteration will do hr++, which isn't less than 24 anymore.

Much cleaner solution will be

for(hr = "0"; hr < 24; hr++) {
    if(hr < 10) {
        apd = "0";
    } else {
        apd = ""
    }

    mi = "00";
    jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr  + ':' + mi + '">' + apd + hr + ':' + mi + '</option>');
    mi = "30";
    jQuery("#bmg_monday_start_hour").append('<option val="' + apd + hr  + ':' + mi + '">' + apd + hr + ':' + mi + '</option>');
}

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745143348a4613531.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信