2012-01-18 70 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