0

時間減算からの値で配列/リストを埋めようとしています。この形式の開始時刻は「09.00AM」で、終了時刻は同じ形式の例:「06.00PM」です。どちらの時刻も、実際にはjquery時間である2つのドロップダウン(午前9時から午後9時までの値)から来ています。ピッカーコントロール。これが私がやろうとしていることです。ユーザーが両方の時間を選択した後、選択した2つの時間値の間にある個々の「時間」マーク値を配列/リストに入力します。例:午前9時と午後12時を選択すると、値{"10.00 AM"、 "11.00 AM"}が表示されます。午前10時から午後4時を選択すると、{"11.00 AM"、 "12.00 PM"、"01.00PM"が表示されます。 、"02.00 PM"、"03.00PM"}。。

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.
}
4

1 に答える 1

2

I have not tested this but it should work for what you are trying to do and it should operate faster than the calculations you are trying to do.

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;
}
于 2012-09-12T19:28:51.990 に答える