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函数取自:Elegant method to generate a array of random dates within two dates

于 2012-11-24T10:42:26.967 回答
2

我为您制作了一个jsFiddle就当前日期而言,这对我来说绝对有效。如果您想要一个随机数,则必须使用此代码生成这样的数字

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

whereminmax是您想要的范围,即 0 到 6。我已将此添加到 jsFiddle 示例中。

于 2012-11-24T10:44:23.640 回答