2016-11-20 10 views
0

私は週の残りの曜日を表示するスケジュールを表示しようとしていますが、機能を使用してgetDay()を4回以上使用すると機能しません。私は何を意味するかを示すために小さなサンプルコードを作った。行のコメントを外しても機能しません。Javascript - 週に4日以上は表示できません。

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function myFunction() { 
    alert("hit"); 
    var d = new Date(); 
    var weekday = new Array(7); 
    weekday[0] = "Sunday"; 
    weekday[1] = "Monday"; 
    weekday[2] = "Tuesday"; 
    weekday[3] = "Wednesday"; 
    weekday[4] = "Thursday"; 
    weekday[5] = "Friday"; 
    weekday[6] = "Saturday"; 

    var a = weekday[d.getDay()]; 
    var b = weekday[(d.getDay() + 1) % 7]; 
    var c = weekday[(d.getDay() + 2) % 7]; 
    var d = weekday[(d.getDay() + 3) % 7]; 
    //var e = weekday[(d.getDay() + 4) % 7]; 

    document.getElementById("day1").innerHTML = a; 
} 
</script> 
</head> 
<body onload="myFunction()"> 
<h1 id="day1">Test</h1> 
</body> 
</html> 
+0

これは純粋なJavaScriptで解決できますが、私の意見では、開発者の考え方よりも日付が複雑であり、悪いネイティブjsの方法でやってみると最悪です。 [http://momentjs.com/](moment.js)を使用することをお勧めします。それは、私たちが気にしていない日付で起こっているすべての複雑な事柄の抽象です。 – bySamo

答えて

1

変数dを再割り当てします。あなただけの変数にして、そこからあなたの他の操作を行う()1時間、店舗d.getDayを呼び出すことができるとき

var d = weekday[(d.getDay() + 3) % 7]; 

しかし、この問題を解決するために、不必要なようです。例:

function myFunction() { 
    alert("hit"); 
    var d = new Date(); 
    var day = d.getDay(); 

    var weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; 

    var a = weekday[day]; 
    var b = weekday[(day + 1) % 7]; 
    var c = weekday[(day + 2) % 7]; 
    var d = weekday[(day + 3) % 7]; 
    var e = weekday[(day + 4) % 7]; 

    document.getElementById("day1").innerHTML = a; 
} 
+0

私はその感謝を使用して動作します。私はjsに奇妙な問題がたくさんあります。それはメモリのせいかもしれませんか? html行のようなものは、その下に重複する行があるかどうかを示していますが、その行が1行の場合は動作しません。 –

+0

いいえ、それは起こるべきではありません。新しい質問を投稿する – Paul

関連する問題