2012-01-18 148 views
5

我不是很擅長JavaScript時間操作。Javascript動態時間下拉

這是我正在做的事情:我有一個需要結束時間下拉列表的UI。它的時間有限,基本上是從早上7點到晚上10點,增量爲15分鐘。我使用jQuery和要創建的飛選擇框,看起來像這樣:

<select> 
<option value="420">7:00 AM</option> 
<option value="435">7:15 AM</option> 
<option value="450">7:30 AM</option> 
etc... 
</select> 

任何人都知道如何在JavaScript/jQuery的做到這一點。我想要做的事動態是這樣的:

for(int i = 420; i<=1320; i+=15){ 
//use value of i to increment a date or something and create an option for the drop down... this is where I am stuck 
} 
+0

只是有一小時一個變量和分鐘一個變量。如果分鐘變量超過60分鐘,則將分鐘變量增加15分鐘並增加小時變量。與使用日期相比,它最有可能效率更低,開銷更少。 – Hello71 2012-01-18 22:13:26

回答

18

下面的片段應該幫助你的想法:

function populate(selector) { 
    var select = $(selector); 
    var hours, minutes, ampm; 
    for(var i = 420; i <= 1320; i += 15){ 
     hours = Math.floor(i/60); 
     minutes = i % 60; 
     if (minutes < 10){ 
      minutes = '0' + minutes; // adding leading zero 
     } 
     ampm = hours % 24 < 12 ? 'AM' : 'PM'; 
     hours = hours % 12; 
     if (hours === 0){ 
      hours = 12; 
     } 
     select.append($('<option></option>') 
      .attr('value', i) 
      .text(hours + ':' + minutes + ' ' + ampm)); 
    } 
} 

populate('#timeSelect'); // use selector for your select 
+0

這讓我走了!謝謝!! – Matt 2012-01-18 23:00:43