我正在尝试使用时间减法的值填充数组/列表。我有这种格式的开始时间“09.00 AM”和结束时间相同的格式ex:“06.00 PM”,两次都来自两个下降(值从上午9点到晚上9点,每小时增量)这实际上是jquery时间选择器控件。这就是我想要做的...在用户选择两个时间之后,我想填充一个数组/列表,其中包含落在两个选定时间值之间的单个“小时”标记值。例如:选择上午9点和下午12点应该给我值{“10.00 AM”,“11. AM AM”} ..选择上午10点到下午4点应该给我{“11.00 AM”,“12.00 PM”,“01.00 PM” ,“02.00 PM”,“03.00 PM”} ..
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.
}
答案 0 :(得分: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;
}