我正在尝试用时间减法的值填充数组/列表。我的开始时间采用这种格式“09.00 AM”,结束时间采用相同的格式,例如:“06.00 PM”,这两个时间都来自两个下拉列表(值从上午 9 点到晚上 9 点,每小时递增),这实际上是 jquery 时间选择器控件。这就是我想要做的......在用户选择两次之后,我想用落在两个选定时间值之间的单独“小时”标记值填充数组/列表。例如:选择上午 9 点和下午 12 点应该给我值 {“10.00 AM”、“11.00 AM”}。选择上午 10 点到下午 4 点应该给我 {“11.00 AM”、“12.00 PM”、“01.00 PM” 、“下午 02 点”、“下午 03 点”}..
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;
}
关于javascript - 用每小时差异值填充数组/列表 - 给定下拉列表中的两个时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12394815/