2012-01-18 30 views
5

Tôi không phải là rất tốt tại Javascript Thời gian thao tác.Javascript Thời gian động thả xuống

Đây là những gì tôi đang cố gắng làm: Tôi có một giao diện người dùng cần danh sách thả xuống thời gian kết thúc. Tập hợp thời gian hữu hạn của nó, về cơ bản từ 7:00 sáng đến 10:00 tối với khoảng tăng 15 phút. Tôi đang sử dụng jQuery và muốn tạo một hộp chọn có dạng như sau:

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

Bất kỳ ai cũng biết cách làm điều này trong javascript/jQuery. Tôi muốn làm điều gì đó năng động như thế này:

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

Chỉ cần có một biến trong một giờ và một biến cho phút. Tăng biến phút lên 15 phút và tăng biến giờ nếu biến phút trên 60. Nó rất có thể sẽ kém hiệu quả hơn và có ít chi phí hơn so với sử dụng ngày. – Hello71

Trả lời

18

Đoạn sau đây sẽ giúp bạn có được những ý tưởng:

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

Điều đó khiến tôi đi! Cảm ơn!! – Matt

Các vấn đề liên quan