2014-10-17 33 views
0

我正在編寫一個JS頁面,它從外部源抓取日曆數據,將其導入多維數組並使用它來顯示當前正在與他們的照片一起工作的人,電話號碼等使用時間作爲動態變量來比較值

現在我已經設置好了,以便頁面每15分鐘重新加載一次。我寧願將這一切都動態地完成,以便當時鐘敲擊下午5點時,頁面知道要更新,而不必等到觸發15分鐘刷新。

所有的工作時間都以24小時格式從其他日曆中提取(所以下午5點是1700)。

這裏是我是如何產生的電流的時間在日曆的開始/結束時間進行比較:

//Get the current date and time 
var dateTime = new Date(); 
var month = dateTime.getMonth() + 1; 
var day = dateTime.getDate(); 
var dayOfWeek = dateTime.getDay(); 
var year = dateTime.getYear() + 1900; 
//converting hours and minutes to strings to form the 24h time 
var hours = dateTime.getHours().toString(); 
if (hours.length === 1) { 
    var hours = '0' + hours 
}; 
var minutes = dateTime.getMinutes().toString(); 
if (minutes.length === 1) { 
    var minutes = '0' + minutes 
}; 
var time = hours + minutes; 
//convert the 24h time into a number to read from later 
var timeNumber = parseInt(time); 

然後我用if語句的開始/結束時間從timeNumber進口進度比較以確定誰正在工作,推動這一到最終使用此代碼顯示在頁面上的一組:

//figure out who is currently working and put them in the workingNow array 
var workingNow = []; 
for (i = 0; i < workingToday.length; i++){ 
    //convert time strings to numbers to compare 
    var startTime = parseInt(workingToday[i][7]); 
    var endTime = parseInt(workingToday[i][8]); 
    //compare start and end times with the current time and add those who are working to the new list 
    if(startTime < timeNumber && timeNumber < endTime){ 
     workingNow.push(workingToday[i]); 
    } 
}; 

我猜我剛纔一直在試圖找出如何讓數據在這個比較陣列與當前時間事端g是動態的。這是可能的還是我需要以完全不同的方式去解決這個問題?

回答

1

你應該看看momentjs。這是一個非常好的庫,可以處理各種時間和日期操作。

http://momentjs.com/

+0

謝謝!這對於減少我需要編寫和簡化這個過程所需的代碼非常有幫助。一般來說,我對編程相對比較陌生,我想我只是試圖圍繞一個腳本來持續評估條件是否爲真(即,如果數組的時間範圍與當前時間匹配)並且動態重建頁面而無需刷新和重新評估語句。我挖掘了一些代碼來生成一個帶有JS的動態時鐘,但是使用if語句比在頁面上吐出一個動態變量更復雜一些。 – Dan 2014-10-17 12:02:13

+0

我想你可以使用setInterval來以給定的時間間隔來評估語句。 https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setInterval – 2014-10-17 12:09:11

+0

提及時刻! – chazsolo 2014-10-17 13:02:27