2011-10-19 107 views
0

我最近試圖轉換我寫到Javascript的日曆。對不起,我之前在這裏提過一個問題,但我應該在這個問題中包含這個問題。如何將此PHP代碼轉換爲Javascript?

我也跟着得到的代碼的程序是:要經過由線PHP線,一切都轉換爲JavaScript中的等價語法。我使用onclick鏈接來調用日曆功能,而不是使用POST向PHP中的頁面發送信息。而不是使用array_search我用indexOf(etc等)。你得到的照片。

爲了正確地轉換代碼爲Javascript,還有什麼我需要做什麼?我不想找人爲我做作業。日曆在PHP中運行良好,我認爲我已經替換了所有必要的功能(例如indexOf for array_search等)。 JavaScript代碼是相同相當於PHP程序:

PHP:http://codepad.org/87T2EFW9

的Javascript:http://codepad.org/it10aljf

它顯示錯誤十月,只需一個鏈接。親自運行它,看看我的意思。

什麼樣的建議,你會給我從這裏?有些人建議使用JSHint,但它給了我很多錯誤,我認爲這些錯誤並不是非常必要的(顯然,我已經多次聲明變量,但沒有任何內容會破壞程序)。我應該採取什麼有用的程序?也許我應該重新開始,並儘可能徹底地逐行瀏覽它?你們在移植(蹩腳的或非破壞性的)代碼時做什麼?

我看到有人在這裏投票我下來問這個問題,我做了什麼了嗎?我應該不打擾嗎?

+0

我只是想更新此:實際上,有絕對沒有錯我移植的代碼 - 這是JavaScript。當我使用get day函數時,我假設像PHP一樣,函數按照正確的順序(例如星期一到星期日)返回日期。這是從我正在使用的頁面(在w3schools上)中省略的,因此我可能花了一兩天苦惱哪裏出了問題。移植時,請不要假設函數與您使用的語言完全相同。 – SystemError

回答

0

我知道這並不直接回答你的問題,但我會建議重寫從頭JavaScript版本,而不是從PHP將它移植的。 JS有一個非常強大的Date對象,它可以爲你做所有的日期(月,日,月等)。所以你的大部分php代碼在javascript中都是不需要的。

例如,這是怎麼了,你可以使用Date對象找出給定月份天DOWS:

var month = 10; 
var year = 2011; 

// this is the first of the month 
var date = new Date(year, month - 1, 1); 
// while we are in this month... 
while (date.getMonth() == month - 1) { 
    // print the date... 
    document.write("date=" + d + " dow=" + d.getDay() + " day=" + d.getDate() + "<br>"); 
    // ...and goto the next day 
    date.setDate(date.getDate() + 1); 
)