Javascript每秒显示和隐藏数字

时间:2014-06-05 10:06:20

标签: 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>
            <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>

它没有工作......我尝试在函数(数字)中添加一条警告消息,但它仍然无效... 我使用PHP生成这些数字,我粘贴了脚本的HTML输出.. 很想听听修复这个脚本:) 谢谢。

2 个答案:

答案 0 :(得分:0)

在行中:

setInterval(numbers(), 1000);

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

setInterval("numbers()", 1000);

你的日期时间是一个字符串,对吗?也许你把它与现在的日期混在一起;尝试:

currentdate.getTime();

请注意,getTime()是基于UTC的;所以无论如何都不需要将当前时间转换为UTC。此外,我希望您可以直接比较Date对象,而不必过去“getTime&#39; (虽然不确定..)。

答案 1 :(得分:0)

我的回答: 首先要感谢快速因为setinterval函数根本没有工作,直到他解释! 第二,有一个错误导致javascript代码死了我替换了:

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

使用:

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