2016-06-10 66 views
-1

網站上有類似的話題比較時間,但我有一點點不同的問題。我需要比較特定的時間和現在。使用JQuery比較小時和日期

我有一些特定時間(天,開閉小時店)例如:週一開市10:00 - 收盤下午6:30

我想創建,檢查時間並通知應用程序到用戶:商店是開放或關閉,就像谷歌應用程序。

我需要找到現在和指定時間的減法結果:例如,如果日期是星期一(結束時間是6:30),並且時間是下午5點20分,結果將是1:10,這意味着商店是開放的,但我不知道如何將6:30轉換爲小時格式。

+1

使用日期()..im肯定這是一個重複,嘗試谷歌 –

+0

@Pootie好主意!爲什麼我不想嘗試谷歌! – u238

+0

[如何呈現JavaScript中兩個時間戳之間的上下文差異?](http://stackoverflow.com/questions/168924/how-to-render-contextual-difference-between-two-timestamps-in-javascript) –

回答

3

根據您所提供的信息,你可以做到以下幾點:

var time = "6:30", 
    splitTime = time.split(':'), 
    hours = splitTime[0], 
    minutes = splitTime[1]; 

然後你就會有小時和分鐘就可以有效使用的對比參數。

+0

好的方法,但是,例如,如果時間是上午10點50分,結果將是10-6 = 4,50-30 = 20它打開4小時20分鐘,它不會是正確的。 – u238

+0

對。你不能以這種方式比較AM和PM。提供time.endsWith('pm'),你可以在小時中加12。 –

3

首先,設置默認的時區:

date_default_timezone_set('Europe/Paris'); 

然後,你就可以演算之間的差異,封閉時間:

$diff = strtotime('today 18:30') - strtotime(date('Y-m-d H:i')); 
if ($diff > 0) 
    echo 'The shop is opening. Closed in ' . gmdate("H:i", $diff); 
else 
    echo 'The shop is closed. Please come back tomorrow.'; 
+0

感謝回答,javascript或jquery會很好,但我會嘗試。 – u238

+0

由你決定。用js,你可以使用Date。例如。 var closedTime = new Date(「2016年6月11日18:30:00」); –

1

從我的理解,你可以通過

  • 將關閉時間/分鐘存儲在數組中並將每個存儲在變量中
  • 獲取當前時/分和存儲每一箇中的可變
  • 獲取剩餘的小時/分鐘
  • 請如果條件句到在
    • 剩餘小時大於或等於1並且其餘情況下固定所述結果分鐘小於0(負)
    • 如果小時當前時間比關閉時間

更大

window.onload = function() { 
 

 
    'use strict'; 
 

 

 
    var closingTime, 
 
     closingHour, 
 
     closingMin, 
 

 
     currDate, 
 
     currTime, 
 
     currHour, 
 
     currMin, 
 

 
     remHours, 
 
     remMin, 
 

 
     remMessage; 
 

 

 
    closingTime = ['18', '30']; 
 

 
    /* Get Closing hours/minutes */ 
 
    closingHour = closingTime[0]; 
 
    closingMin = closingTime[1]; 
 

 

 
    currDate = new Date().toString().split(" "); 
 
    currTime = currDate[4].split(':'); 
 

 
    /* Get Current hours/minutes */ 
 
    currHour = currTime[0]; 
 
    currMin = currTime[1]; 
 

 

 
    if (currHour >= 10) { 
 

 
    /* Get remaining hours/minutes */ 
 
    remHours = closingHour - currHour; 
 
    remMin = closingMin - currMin; 
 

 
    if (remHours >= 1 && remMin < 0) { 
 
     remHours -= 1; 
 
     remMin = 60 + remMin; 
 
    } 
 

 
    remMessage = "Remaining Hours: " + remHours + "<br>" + " Remaining Minutes: " + remMin; 
 

 
    if ((remHours === 0 && remMin === 0) || (remHours === 0 && remMin < 0) || remHours < 0) { 
 
     remMessage = " Sorry, The shop is closed!"; 
 
    } 
 

 
    // if current hour less than 10 
 
    } else { 
 
    var remToOpen = 10 - currHour; 
 
    remMessage = "The shop will be opened after " + remToOpen + ' hours'; 
 
    } 
 

 
    document.querySelector('p').textContent = remMessage; 
 

 
};
<p></p>