2009-12-08 15 views
0

我想看看我的JavaScript文件的功能是否正確寫入,以顯示「2006年12月24日,星期日」。因此,這裏的功能:Javascript文件 - 功能出錯?需要幫忙!

function XmasDays(thisDate) {  

    var XMYear = thisDate.getFullYear();  
    var XMDay = new Date("December, 25, 2005"); 

    XMDay.setFullYear(XMYear);  

    var dayTotal = (XMDay-thisDate)/(1000*60*60*24); 
    dayTotal = Math.round(dayTotal); 

    return dayTotal; 
} 

我已經測試了以下:

var XMYear=thisDate.getFullYear();  
var XMDay=new Date("December, 25, 2005"); 
XMDay.setFullYear(XMYear); 

而且我似乎輸出正確的信息,我的網頁,但不能弄清楚,如果以下三個正確寫入你能幫我看看這些是否有錯誤?謝謝!!

var dayTotal=(XMDay-thisDate)/(1000*60*60*24); 

dayTotal=Math.round(dayTotal); 

return dayTotal; 

如果您有任何疑問,請詢問。非常感謝任何和所有幫助!

+0

它更加清潔與 VAR XMDay =新的日期(thisDate.getFullYear(),11,25) – peller 2009-12-10 16:52:32

+0

好,謝謝您的輸入:) – Ashley 2009-12-15 19:09:10

回答

1

我找到了解決方案,使下面的函數工作:

function XmasDays(thisDate) { 
    var XMYear=thisDate.getFullYear(); 
    var XMDay=new Date("December, 25, 2005"); 
    XMDay.setFullYear(XMYear); 
    var dayTotal=(XMDay-thisDate)/(1000*60*60*24); 
    dayTotal=Math.round(dayTotal); 
    return dayTotal; 
} 

所有我需要做的是從功能刪除XMDay.setFullYear(XMYear);因爲這是消除之日起,以前的數據和混淆了。然後我說.getTime()到這部分功能:

var dayTotal=(XMDay-thisDate)/(1000*60*60*24); 

,使其看起來像這樣:

var dayTotal=(XMDay.getTime()-thisDate.getTime())/(1000*60*60*24); 

爲了改變日期,以得到不同的結果,你會去:

var XMDay=new Date("December 25, 2009"); 

並在圓括號內更改日期。完成以上所有操作後,該功能將正常工作,並正確顯示日期和正確日期,直到聖誕節以及相應的評論。所以我修改後的功能看起來像這樣:

function XmasDays(thisDate) { 
    var XMYear=thisDate.getFullYear(); 
    var XMDay=new Date("December 25, 2009"); 
    var dayTotal=(XMDay.getTime()-thisDate.getTime())/(1000*60*60*24); 
    dayTotal=Math.round(dayTotal); 
    return dayTotal; 
} 

感謝那些回答並給了我提示,但我已經知道了。我非常感謝你通過你的意見和幫助!

0

您可能喜歡Date.js

您的問題上面顯示您正在減去兩個日期對象。從每個對象中獲取適當的單位(天?)並將其減去。

See here

+0

謝謝你給我的鏈接date.js更換前三行我認爲這將在未來幫助我很多! :) – Ashley 2009-12-09 20:03:23

+0

這是我的重要圖書館之一! – Upperstage 2009-12-09 20:32:58

0

你應該先決定你想要的功能做什麼:什麼樣的輸入是有效的它,應該是什麼樣的一個給定的輸入輸出。

然後你應該檢查它是否確實如此。無論是通過查看代碼或通過將各種參數作爲輸入並查看其輸出。

你說:'我試圖看看我的JavaScript文件的功能是否正確寫入,以顯示「2006年12月24日星期日」。但是不管thisDate參數值是什麼,你可能都不希望函數總是做同樣的事情。此外,該功能不顯示任何內容,因此顯然不會執行您所描述的內容。

0

向代碼添加警報,或者在返回之前將輸出寫入頁面,以查看該值是什麼(如果尚未)。

對於我今天的日期,即12月8日下午1:20,您的代碼將返回16。這可能是正確的,取決於你想要什麼。在聖誕節的午夜12點前有〜16.44天。

// Number of milliseconds from now until midnight Christmas 
// divided by the number of milliseconds in a day, which 
// gives the number of days until Christmas 
var dayTotal=(XMDay-thisDate)/(1000*60*60*24); 

// This rounds the number to the closest whole number 
// Rounding up might be more appropriate in this case 
dayTotal=Math.round(dayTotal); 

// Debug output 
alert(dayTotal); 

return dayTotal; 

我要說的是,你可能想Math.ceil,給你四捨五入的天數,因爲如果你是從午夜聖誕節12小時了,我想說的還是有一天離開,直到你到午夜。

但除此之外,你的代碼似乎是正確的。