给出了两个日期:
让我们说,
日期dt1 = 2013年6月22日晚上8:00
日期dt2 = 2013年6月24日上午6:00
鉴于这两个日期,我想确定凌晨1点到凌晨5点的段数在这两个日期之间。
对于上述内容,有两个部分:
6月23日凌晨1点至凌晨5点
6月24日凌晨1点至凌晨5点
所以答案应该是2。
我可以在两次之间得到区别,
var time1 = new Date(dt1).getTime();
var time2 = new Date(dt2).getTime();
var diff = new Date(time1 - time2);
小时数,分钟数和秒数
var hours = diff.getHours();
var minutes = diff.getMinutes();
var seconds = diff.getMinutes();
但这只会产生预期的差异。
需要采取什么方法?
答案 0 :(得分:1)
与计算机科学中的其他内容一样:将问题分解为一系列您能够解决的小问题。
例如,在此问题中,您可能只是确定时间跨度中是否至少有一个“细分”。如果有,您可以删除整个时间段的前24小时,然后重复此过程,只要有24小时要删除。记得要沿途计算。
答案 1 :(得分:1)
另一种方法可能是检查
time1.getHours()
之前或之前等于凌晨1点,那么result=1
time2.getHours()
在凌晨5点之后再resutl++
result+= diff.getDays() - 1