2011-10-19 8 views
0

私は最近、私が書き込んだカレンダーをJavascriptに変換しようとしています。申し訳ありませんが、私は前に質問しましたが、私はこの質問にその質問を含めるべきでした。このPHPコードをJavascriptに変換するには?

コードを取得するために私が従った手順は、PHP行を1行ずつ調べ、すべてをJavaScriptで同等の構文に変換することでした。 POSTを使用してPHPのページに情報を送信する代わりに、onclickリンクを使用してカレンダー関数を呼び出します。 array_searchを使用する代わりに、私はindexOf(etcなど)を使用しました。あなたは写真を手に入れます。

コードをJavascriptに正しく変換するには、他に何をする必要がありますか?私は誰も私の宿題をするのを探しているわけではない。カレンダーはPHPでうまく動作し、必要な機能(array_searchなどのindexOfなど)をすべて置き換えたと思います。 JavaScriptコードは、PHPプログラムに同一の等価です:

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

Javascriptを:それはちょうど前のリンクで、間違って10月を示しhttp://codepad.org/it10aljf

。自分のためにそれを実行し、私が何を意味するかを見てください。

ここからどのようなアドバイスをいただけますか?一部の人々はJSHintの使用を提案していますが、実際には必要ではないと思われる多くのエラーを表示しています(明らかに変数を何度も宣言していますが、私が引き受けるべき有益な手続きはありますか?たぶん、私はもう一度やり直して、できるだけ徹底的に行ごとに行くべきでしょうか?コードを移植するときにはどうしますか?

私はこの質問に私を投票した人がいるのを見ましたが、何か間違ったことをしましたか?私は全く気にしないでください。

+0

私はこれを更新したかった:実際に、私は移植されたコードと間違って絶対に何もありませんでした - それはJavaScriptだった。 get day関数を使用したとき、私はPHPのように、関数が正しい順序(例えば、月曜日から日曜日)で日数を返したとみなしました。これは、私が使用していたページ(w3schools)で省略されていたため、間違ったことに苦しんで1〜2日かかったかもしれません。移植するとき、関数が使用している言語とまったく同じ方法で動作すると想定しないでください。 – SystemError

答えて

0

これはあなたの質問に直接答えることはできませんが、私はPHPから移植するのではなく、最初からjavascriptのバージョンを書き直すことをお勧めします。 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); 
) 
関連する問題