2012-09-12 20 views
0

我想用時間減法中的值填充數組/列表。我已經以這種格式「09.00 AM」和結束時間以相同格式例如「06.00 PM」開始時間,兩次都來自兩次下拉(從上午9點到下午9點,每小時遞增一次),這實際上是jquery時間選取器控制。這是我想要做的..在用戶選擇兩次之後,我想用位於兩個選定時間值之間的單個「小時」標記值填充數組/列表。例如:選擇上午9點和下午12點應該給我價值{「10.00 AM」,「11.00 AM」} ..選擇上午10點到下午4點應該給我{「上午11點」,「下午12點」,「下午1點00分」 「下午二時」,「下午3點」} ..用小時差分值填充數組/列表 - 給定從下拉列表中獲得兩個時間值

var FirstTime = container.find('#1time').val(); 
var SecondTime = container.find('#2time').val(); 

var busyTimes = []; 
busyTimes = getBusyTimes(FirstTime , SecondTime); 

功能JS:

function getBusyTimes(first, second) { 
    var f = first.split(' '), s = second.split(' '); 
    if (first == '12.00 AM') f[0] = '0'; 
    if (first == '12.00 PM') f[1] = 'AM'; 
    if (second == '12.00 AM') s[0] = '24'; 
    if (second == '12.00 PM') s[1] = 'AM'; 
    f[0] = parseInt(f[0], 10) + (f[1] == 'PM' ? 12 : 0); 
    s[0] = parseInt(s[0], 10) + (s[1] == 'PM' ? 12 : 0); 
    int i = s[0] - f[0]; 
    // I have difference in hours in "i" 
    //From here, I want to make use of value 'i' -- calculate in between 
    // hourly values and return the array back to 
    // original function above. 
} 

回答

2

我沒有測試過這一點,但它應該是你正在嘗試做的工作,它應該工作快於您正在嘗試做的計算。

function getBusyTimes(first, second){ 
var timeList = ['12:00 AM','1:00 AM','2:00 AM','3:00 AM']; // finish this list 
var firstid = timeList.indexOf(first); 
var secondid = timeList.indexOf(second); 
var result = new Array(); 
for(var i=firstid; i<=secondid; i++){ 
    result.push(timeList[i]); 
} 
return result; 
} 
+0

這是行得通! http://jsfiddle.net/H8Nd5/1/ - 我已經做了一個修改,允許第二次更早的即。從下午11點到上午6點 – svillamayor

相關問題