试图在两次之间找出半小时的时间
trying to find the amount of half hours in between two times
我现在想不出来了。。。。我一直在努力计算两个变量之间有多少半小时,这两个变量的开始和结束时间分别是1100和1430
我开始做以下事情,但意识到时间不会超过100!
function process_blocks(startTime,endTime){
var blocks = 0;
startTime = +startTime;
endTime = +endTime;
while(startTime < endTime){
startTime = startTime + 30; // add a half hour, which is a block
blocks++;
}
return blocks;
}
function getHalfHourCount(start, end) {
start = getMinutes(start);
end = getMinutes(end);
var diff;
if (end < start)
diff = 24*60 - start + end
else
diff = end - start;
if (start % 30 != 0)
diff = diff + start % 30;
--diff;
var result = Math.floor(diff / 30);
document.write(result + "<br />");
return result;
}
function getMinutes(time) {
time = String(time);
if (time.length == 4)
return parseInt(time.substr(0, 2)) * 60 + parseInt(time.substr(2, 2));
else
return parseInt(time.substr(0, 1)) * 60 + parseInt(time.substr(1, 2));
}
查看我的工作演示:http://jsfiddle.net/roberkules/pUfF2/
您需要处理成千上万的;以小时表示的数百个数字;1以分钟为单位。
24小时时间总是有4位数字,所以取前两位,然后比较:
$first = 11;
$second = 14;
$diff = $second - $first; //number of full hours
$fmin = 00;
$smin = 30;
$sdiff = $smin - $fmin; // number of minutes difference
//Do magic to determine how many half hours this is, probably using division and modulo
$halfs = magic($sdiff);
$halfhours = (2 * $diff) + $halfs;
以分钟计算间隔,然后除以30:
/**
* @param startTime integer hours and minutes as an integer like 1100 or 1430
* @param endTime integer hours and minutes as an integer like 1100 or 1430
* endTime must be equal to or higher than startTime, else you'll get a negative
* number of half hours :D
*/
function half_hours_in_interval(startTime, endTime) {
var hours, minutes, total_minutes;
hours = Math.floor(endTime / 100) - Math.floor(startTime / 100);
minutes = (endTime % 100) - (startTime % 100);
if (minutes < 0) { // this step is probably not even necessary, but just for sanity's sake
hours -= 1;
minutes += 60;
}
total_minutes = hours * 60 + minutes; // now we know how many minutes are in the interval
return Math.floor(total_minutes / 30); // or ceil or round or whatever you want
}
此外,不要将函数命名为"process_X",因为它并没有真正描述函数。
其他答案都有效,但如果你试图找出不同日期时间之间发生的30分钟块的数量,你会遇到问题。最好将startTime和endTime转换为Date对象,然后比较每个对象之间30分钟的块数。
下面接受两个日期,并返回两个日期之间完整的30分钟块数。在这个例子中,我添加了一个随机的654分钟,但你可以随意修改:
var now = new Date();
var later = new Date(now);
later.setMinutes(now.getMinutes() + 654);
function process_blocks(startTime,endTime) {
if (endTime < startTime) {
alert('endTime must be greater than startTime');
}
else {
alert('There are ' + Math.round((endTime - startTime)/1000/60/30) + ' full 30 minute blocks between the two times' );
}
}
process_blocks(now,later);
将所有内容转换为分钟数,然后除以30得到结果(如果需要,可以四舍五入)
var start = Math.floor(startTime/100)*60 + (startTime%100);
var end = Math.floor(endTime/100)*60 + (endTime%100);
return (end-start)/30;
相关文章:
- 如何使用moment.js获取24小时内日期之间的时差
- 夏令时期间不起作用的 2 个日期之间的小时差异
- JavaScript函数,用于在全宽度和半宽度形式之间转换UTF8字符串
- 如何在 24 小时制下计算两个时间之间的时差
- 同位素包装中项目之间的发际线间隙在窗口调整大小时
- 如何计算 24 小时格式的两个时间之间的差异
- JavaScript:评估给定的小时是否在两个小时之间
- 在 JavaScript 中表示半小时时间增量,如果其他 if
- 获取当前时间和中午 12 点之间的小时和分钟差异
- 如何在JS/PHP的Microtime中从服务器时间倒计时到最接近的半小时
- 将当前时间转换为最接近的半小时
- 计算小时,分钟在JavaScript或JQuery或moment.js - 2个日期和时间之间
- Javascript /jquery间隔半小时2次
- 计算小时和分钟之间的2日期和时间
- 两个日期和时间之间的小时差异
- 将Javascript定时器设置为半小时
- JavaScript splice()方法不删除数组中时间项是半个小时
- 试图在两次之间找出半小时的时间
- 如何超时一个jquery脚本设置为每隔半小时运行一次
- Javascript时间-每半小时运行一个函数