每秒显示和隐藏数字的Javascript

每秒显示和隐藏数字的Javascript,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,以下是我设法做到的: <div class="numbers" id="numbers"> <div id="11" hidden=""> <img src="numbers/11.png"> </div> <div id="12" hidden=""> <img src="numbers/12.png"> <

以下是我设法做到的:

<div class="numbers" id="numbers">
            <div id="11" hidden="">
          <img src="numbers/11.png">
      </div>
            <div id="12" hidden="">
          <img src="numbers/12.png">
      </div>
            <div id="13" hidden="">
          <img src="numbers/13.png">
      </div>
            <div id="14" hidden="">
          <img src="numbers/14.png">
      </div>
            <div id="15" hidden="">
          <img src="numbers/15.png">
      </div>
        </div>

<script type="text/javascript">
    function numbers() {
        var num = Math.floor(Math.random() * (15 - 10 + 1)) + 10;
        var currentdate = new Date();
        var enddate = document.getElementById("end_date").value;
        var datetime =  (currentdate.getUTCMonth()+1)  + "/"
            +  currentdate.getUTCDate() + "/"
            + currentdate.getUTCFullYear() + " "
            + currentdate.getUTCHours() + ":"
            + currentdate.getUTCMinutes() + ":"
            + currentdate.getUTCSeconds();
        var date2 = new Date(enddate);
        var timestamp1 = datetime.getTime();
        var timestamp2 = date2.getTime();
        if(timestamp1 > timestamp2)
        {
           //kill the interval
           //kil the timer
           //show the winner

        }
        else
        {
            $("#numbers").hide();
            //hide all  numbers
                          $("#11").hide();
                                $("#12").hide();
                                $("#13").hide();
                                $("#14").hide();
                                $("#15").hide();
                                //show generated new numbery
              $("#"+num).show();
              $("#numbers").show();
        }

 }

    setInterval("numbers()", 1000);

</script>

函数号(){
var num=Math.floor(Math.random()*(15-10+1))+10;
var currentdate=新日期();
var enddate=document.getElementById(“结束日期”).value;
var datetime=(currentdate.getUTCMonth()+1)+“/”
+currentdate.getUTCDate()+“/”
+currentdate.getUTCFullYear()+“”
+currentdate.getUTCHours()+“:”
+currentdate.getUTCMinutes()+“:”
+currentdate.getUTCSeconds();
var date2=新日期(enddate);
var timestamp1=datetime.getTime();
var timestamp2=date2.getTime();
如果(时间戳1>时间戳2)
{
//消磨时间
//停止计时
//向获胜者展示
}
其他的
{
$(“#数字”).hide();
//隐藏所有数字
$(“#11”).hide();
$(“#12”).hide();
$(“#13”).hide();
$(“#14”).hide();
$(“#15”).hide();
//显示生成的新编号
$(“#”+num.show();
$(“#数字”).show();
}
}
设置间隔(“数字()”,1000);
它不起作用了。。。我尝试在函数(数字)中添加一条警报消息,但它仍然不起作用。。 我使用PHP生成这些数字,我粘贴了脚本的HTML输出。。 希望听到有关修复此脚本的信息:) 谢谢。

行中:

setInterval(numbers(), 1000);
实际上是执行numbers(),而不是计划每秒执行一次。试试这个:

setInterval("numbers()", 1000);

你的日期时间是一个字符串,对吗?也许你把它和当前日期弄混了;尝试:

currentdate.getTime();
注意getTime()是基于UTC的;因此,无论如何都不需要将currenttime转换为UTC。另外,我希望您可以直接比较日期对象,而不必经过“getTime”(虽然不确定)。

我的答案: 首先要感谢fast,因为在他解释之前,setinterval函数根本不起作用! 其次,有一个错误导致javascript代码死亡,因此我替换了:

    var date2 = new Date(enddate);
    var timestamp1 = datetime.getTime();
    var timestamp2 = date2.getTime();
与:


查看并告诉您在那里看到的错误以及它们指向的行。特别是最后一行(1\000?)看起来可疑,但可能还有其他问题。“它不工作”不是一个有用的问题描述。
setInterval(numbers(),1\000)
1\000
中删除斜杠我发誓我两天前写了这个脚本,我真的想从我的错误中吸取教训,而不是试图成为一个灌木丛什么的..没有人这么说,但你需要更具体一些,而不仅仅是在这里转储代码并说“它不起作用”。告诉你得到了什么错误,它应该做什么,以及它做了什么。已经做了但没有运气:(谢谢你的回答,下次会小心的;)我添加了一个警告(1);进入函数的第一行,它每秒都在发出警报!我在firefox上打开了控制台,上面写着“TypeError:datetime.getTime不是函数”
    var date1 = new Date(datetime);
    var date2 = new Date(enddate);
    var timestamp1 = date1.getTime();
    var timestamp2 = date2.getTime();