用每小时的差值填充数组/列表-从下拉列表中给定两个时间值

Fill an array/list with hourly differential values - given two time values from drop downs

本文关键字:时间 两个 下拉列表 每小时 填充 数组 列表      更新时间:2023-09-26

我正试图用时间减法的值填充数组/列表。我有这种格式的开始时间"09.00 AM"和相同格式的结束时间(例如:"06.00 PM"),这两个时间都来自两个下拉列表(值从上午9点到晚上9点,每小时递增),它们实际上是jquery时间选择器控件。这就是我正在尝试做的。在用户选择两个时间后,我想用介于两个所选时间值之间的单个"小时"标记值填充数组/列表。例如:选择上午9点和下午12点应该会给我值{"上午10点"、"上午11点"}。。选择上午10点到下午4点应该给我{"上午11点"、"下午12点"、"下午1点"、"下午2点"、"下午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.
}

我还没有测试过这个,但它应该适用于你想要做的事情,而且它的运行速度应该比你想要进行的计算更快。

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;
}