2012-09-19 90 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進行比較。

相關問題