我需要使用javascript计算两次之间的差异: 现在是你加载页面的时刻,所以我使用:
now = new(Date).getMinutes()*60;
然后是下一个小时的第一分钟。所以例如现在我住的是20:20:那么将是21:01。 然后我的逻辑将是:
if(then-now>=120){
diff=120;
}else{
diff=then-now;
}
当我计算差异时,我需要包括下一个小时的所有第一分钟。 什么是最智能的方式来计算,然后在几秒钟内?
答案 0 :(得分:1)
then = Date(year, month, day, new(Date).getHours()+1, 1, 0, 0);
这给了你日期对象,所以就这样 - 现在进入秒(getSeconds)。您应该在+1中观看25小时,这样您才能真正使用:
then.setDate(someDate.getHour() + 1);
看起来您的逻辑可能只是min(diff, 120)
。请注意,您可能希望更清楚单位120所处的位置。甚至可以创建一个变量" twoMinutes = 120"或者" twoHours = 120"。
请参阅:How to add number of days to today's date?
===更新: 也许这段代码更有意义
then = Date(year, month, day, new(Date).getHours(), 0, 0, 0);
then.setDate(then.getHour() + 1);
then.setDate(then.getMinute() +1);
YourLogic = min(then-now, 120)
答案 1 :(得分:0)
这看起来并不漂亮,但计算下一小时 01 分钟的非常直接的方法如下:
new Date(new Date(new Date(new Date().getTime() + 3600000).setMinutes(1)).setSeconds(0))
这样您就不必处理检查小时23和修复日期等问题。
您可以使用此提示以相同的方式计算 now ,并检查上述时间之前剩余的秒数:
var now = new Date().getTime();
var remainingSeconds = (new Date(new Date(new Date(now + 3600000).setMinutes(1)).setSeconds(0)) - now) / 1000;