2012-09-19 3 views
0

Jquery를 사용하여 현재 시간이 10.30AM에서 11.30AM 사이인지 확인하고 싶습니다. 올바른 방법으로 어떻게하면됩니까?JQuery에서 주어진 기간 사이의 현재 시간을 비교하십시오.

나는 다음과 같은 방법을 시도하고 내가 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

아무것도 예상대로 작동하지 않는 그 :

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는 false가됩니다 (10:30은 10:30 이후가 아님). 전체 시간을 사용하면 10:30:29는 10:00 이후입니다. 30). 그들이 원하는 것을 결정하는 것은 영업일까지입니다. – RobG

0

당신이 이런 식으로 할 수

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

이되도록 eTime과 sTime이 sTime[0] = "10"sTime[1] = "30" 인 배열이됩니다. e 시간도. 이제 hoursmins과 비교할 수있는 루프를 작성하십시오.

관련 문제