2012-09-19 57 views
0

我想检查当前时间是否在JQuery中10.30AM到11.30AM之间。我如何以正确的方式做到这一点?比较JQuery中给定时期之间的当前时间

我试图通过以下方式和它并不像我想象的

function compareTime(){ 

    var d = new Date(), // current time 
    hours = d.getHours(),// current hour 
    mins = d.getMinutes(); // current minute 

    var sTime = "10.30"; 
    var eTime = "11.30"; 
    var cTime = hours+'.'+mins; 

    if(sTime < cTime < eTime){ 
    // here i want to do something if the current time is in between ... 
    }else{ 

    } 
} 
+0

为什么选jQuery?这是你通常用“普通”JS做的事情。 – nnnnnn

+0

@nnnnnn JQuery是跨浏览器兼容和轻量级的原因 – Swarne27

+0

我爱jQuery,但我所说的是它并不打算帮助你解决这类问题。 – nnnnnn

回答

4

无关使用jQuery:

function checkTime(d) { 
    d = d || new Date(); 
    var minTime = new Date(d); 
    var maxTime = new Date(d); 

    minTime.setHours(10, 30, 0, 0); 
    maxTime.setHours(11, 30, 0, 0); 

    return d > minTime && d < maxTime; 
} 
+0

你甚至不需要重写任何他的函数,而不是条件函数,为什么setHours? – Ohgodwhy

+0

好吧,我明白我们必须将它比作日期而不是字符串。感谢@RobG您的方法正常工作。 – Swarne27

+1

@ Ohgodwhy-这是一个演示,展示一个概念,OP可以使用一个函数或只是逻辑,不管。 'setHours'用于设置用于比较的Date对象的时间。你可以比较一下数字,但这比较简单(对我来说)。如果你只比较小时和分钟,那么10:30:29将是错误的(因为10:30不是10:30之后),但使用全部时间将是真的(因为10:30:29是10: 30)。由OP来决定他们想要什么。 – RobG

0

你可以像这样,

var sTime = "10.30" 
sTime = sTime.split("."); 
var eTime = "11.30"; 
eTime = eTime.split("."); 

,这样eTime和sTime将成为sTime[0] = "10"sTime[1] = "30"的阵列,类似eTime也。现在开发一个循环,将其与hoursmins进行比较。

相关问题