2014-10-20 57 views
0

我正在嘗試編寫一個程序,用於檢查某個特定日期已經過了多少周。我使用jQuery和JavaScript的這個代碼有點工作在這個意義上,它確實給我想要的結果,但該結果同時檢查已過去多少周

例如它#Tip0去#TIP4

跳過4周

我會怎麼解決這個問題

var today = new Date(); 
var date_start = new Date('2014-07-19'); //date to check from 
var timeinmilisec = today.getTime() - date_start.getTime(); //check time past 
var weeks = Math.floor(timeinmilisec/(1000 * 60 * 60 * 24))/7 ; // calculate weeks 
    setInterval(  //update every 100 miliSec 
     function() { 
       for(i = 0; i < 20; i++) { 
        if (i < weeks) { 
         i--; 
         $("#Tip" + i).hide() 
         i++; 
         $("#Tip" + i).show() 
        } 
       } 
      }, 
    100); 
+0

在旁邊注意,試試timeAgo jquery插件。 – 2014-10-20 02:14:31

+0

爲什麼當你檢查的時間是幾周時,你需要每秒運行10次? – charlietfl 2014-10-20 02:14:34

回答

0

這種構建需要關閉。並且您不想在循環中更改i

var today = new Date(); 
var date_start = new Date('2014-07-19'); //date to check from 
var timeinmilisec = today.getTime() - date_start.getTime(); //check time past 
var weeks = Math.floor(timeinmilisec/(1000 * 60 * 60 * 24))/7 ; // calculate weeks 
    setInterval(  //update every 100 miliSec 
     function() { 
       for(i = 1; i <= 20; i++) { 
        (function(i) { //Closure START 
         if (i < weeks) { 
          $("#Tip" + (i - 1)).hide() 
          $("#Tip" + i).show() 
         } 
        })(i);   //Closure END 
       } 
      }, 
    100); 
+0

我試過這個,但我仍然遇到同樣的問題跳過,但是感謝您提供的信息,我仍然在學習。 – Jake 2014-10-20 02:31:11

+0

請創建一個演示,以便我們更好地瞭解問題。 – PeterKA 2014-10-20 02:33:31

+0

我弄明白了,謝謝你的幫助 – Jake 2014-10-20 02:58:36