0

私はこのコードを持っています。ボタンを押すたびにランダムな日付を生成し、テキストを更新する必要があります。ただし、ボタンを押すたびに何も起こりません(もちろん最初に押した後)。

<!DOCTYPE html>
<html>
<body>

<p>Click the button to display what day it is today.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction()
{
var x;
var d=new Date().getDay();
switch (d)
  {
  case 0:
    x="Today it's Sunday";
    break;
  case 1:
    x="Today it's Monday";
    break;
  case 2:
    x="Today it's Tuesday";
    break;
  case 3:
    x="Today it's Wednesday";
    break;
  case 4:
    x="Today it's Thursday";
    break;
  case 5:
    x="Today it's Friday";
    break;
  case 6:
    x="Today it's Saturday";
    break;
  }
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>
4

2 に答える 2

2

ランダムな日付を生成していません。コンストラクターが行うことは、現在の日付Dateを返すことです。そのため、押すたびに日付が変わりません。 ランダムな日付が必要な場合は、間隔の間のランダムな日付を返すこの関数を使用できます。

function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()))
}

行を変更して使用します:

var d=new Date().getDay(); 

var d = randomDate(new Date(2012, 0, 1), new Date());

:random date関数は次のものから取得されます: 2 つの日付内でランダムな日付の配列を生成するエレガントなメソッド

于 2012-11-24T10:42:26.967 に答える
2

jsFiddleを作成しました。これは、現在の日付に関して絶対に機能します。乱数が必要な場合は、このコードでそのような数を生成する必要があります

function getRandomInt (min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

とはminmax必要な範囲、つまり 0 から 6 です。これを jsFiddle の例に追加しました。

于 2012-11-24T10:44:23.640 に答える