2017-06-30 68 views
-1

因此,我正在努力將營業時間添加到特定的網站。我發現這一點JS顯示當前頁面加載時的時間,並確定商店是否關閉。但是,我想將頁面加載時捕獲的時間更改爲活動時鐘。我希望有人能夠協助。營業時間:顯示當前時間和假期

當頁面加載時,它顯示頁面加載的時間。即在12:30 PM訪問網站,timeDiv顯示12:30 PM。在12:31 PM,它仍然顯示12:30 PM。

我想要的是一個活動時鐘,以便在12:31 PM顯示12:31 PM,並在此之後的每個時間間隔顯示當前時間。

這裏的鏈接到原來的筆:https://codepen.io/zeinab92/pen/xwWGWM

var now = new Date(); 
var weekday = new Array(7); 
weekday[0] = "Sunday"; 
weekday[1] = "Monday"; 
weekday[2] = "Tuesday"; 
weekday[3] = "Wednesday"; 
weekday[4] = "Thursday"; 
weekday[5] = "Friday"; 
weekday[6] = "Saturday"; 

var checkTime = function() { 
    var today = weekday[now.getDay()]; 
    var timeDiv = document.getElementById('timeDiv'); 
    var dayOfWeek = now.getDay(); 
    var hour = now.getHours(); 
    var minutes = now.getMinutes(); 

    //add AM or PM 
    var suffix = hour >= 12 ? "PM" : "AM"; 

    // add 0 to one digit minutes 
    if (minutes < 10) { 
    minutes = "0" + minutes; } 

    if ((dayOfWeek === 1 || dayOfWeek === 2 || dayOfWeek === 3 || dayOfWeek === 4 || dayOfWeek === 5) && hour >= 9 && hour === 17 && minutes <=29) { 
    hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15 
    timeDiv.innerHTML = 'it\'s ' + today + ' ' + hour + ':' + minutes + suffix + ' - we\'re open!'; 
    timeDiv.className = 'open'; 
    } 

    else if ((dayOfWeek === 6) && hour >= 8 && hour === 15 && minutes <= 59) { 
    hour = ((hour + 11) % 12 + 1); 
    timeDiv.innerHTML = '<p id="hour">it\'s ' + today + ' ' + hour + ':' + minutes + suffix + '</p> <p id="stat">we\'re open!</p>'; 
    timeDiv.className = 'open'; 
    } 

    else { 
    if (hour === 0 || hour > 12) { 
     hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15 
    } 
    timeDiv.innerHTML = '<p id="hour">It\'s ' + today + ' ' + hour + ':' + minutes + suffix + '</p><p id="stat">we\'re closed!</>'; 
    timeDiv.className = 'closed'; 
    } 
}; 

var currentDay = weekday[now.getDay()]; 
var currentDayID = "#" + currentDay; //gets todays weekday and turns it into id 
$(currentDayID).toggleClass("today"); /hightlights today in the view hours modal popup 

setInterval(checkTime, 1000); 
checkTime(); 

回答

0

有一個很流行的JavaScript庫稱爲momentjs,它處理大量的日期/時間邏輯的很好。我建議你從那裏開始。

此代碼擴展了幾乎相同的方式momentjs你需要把你的假期:

https://gist.github.com/jrhames/5200024

的基本邏輯是跟蹤一個單獨的自定義數組你的假期,然後創建一個功能將日期作爲參數並對您的假期數組進行查找。

+0

謝謝,我來看看。我仍在努力修改它。問題是,在我調整checkTime()函數的每個實例中,時鐘都消失了。 假期是一個獎金。我只是非常需要理解,當用戶在頁面上時鐘處於活動狀態。 再次感謝您的提示。 –

+0

我想你需要在你的問題中增加更多關於這個問題的細節才能得到一個很好的答案。 – Graham

+0

當頁面加載時,它顯示頁面加載的時間。 即訪問網站在12:30 PM,timeDiv顯示12:30 PM。在12:31 PM,它仍然顯示12:30 PM。 我想要的是一個活動時鐘,以便在12:31 PM顯示12:31 PM,並在此之後的每個時間間隔顯示當前時間。 –