我有这个代码,它应该按下每个按钮产生一个随机日期并更新文本。但每次按下按钮都没有任何反应(当然是第一次按下之后)。
<!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>
答案 0 :(得分: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 array of random dates within two dates
答案 1 :(得分:2)
我为你做了jsFiddle。就当前日期而言,这绝对适用于我。如果您想要一个随机数,则必须使用此代码生成这样的数字
function getRandomInt (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
其中min
和max
是您想要的范围,即0到6.我已将此添加到jsFiddle示例中。