【问题标题】:Javascript how to start script on exact timeJavascript如何在准确的时间启动脚本
【发布时间】:2015-06-14 10:36:50
【问题描述】:
  1. 脚本将在准确的时间开始(例如:2015:06:15:00:00)
  2. 如果准时,它将每 1 秒提醒一次 HELLO。

setInterval(function () {alert("Hello")}, 1000);

你能帮我解决这个问题吗?

【问题讨论】:

  • 我不反对你的问题,但我很好奇你会用这个做什么。我可能会得到切肉刀。

标签: javascript loops time setinterval


【解决方案1】:
  1. 我会在 JS 中使用 getTime object
  2. 我相信我在这个JSFiddle中设置了正确的时间

    var d = new Date();
    var year = d.getFullYear();
    // Month 0 = January | Month 11 = December | so I changed vallues by +one
    var month = d.getMonth() + 1;
    var day = d.getDate();
    var hour = d.getHours();
    var minute = d.getMinutes();
    var second = d.getSeconds();
    
    var overall = year.toString() + month.toString() + day.toString() + hour.toString() + minute.toString() + second.toString();
    
    alert(overall);
    
    var checkDate =  function () {
    if(overall==="20156150000") {
        setInterval(function(){ alert("Hello"); }, 1000);
        };
    };
    
    window.setInterval(checkDate(), 1000);
    

【讨论】:

    【解决方案2】:

    不可能在 javascript 中定义日期驱动的触发器。

    相反,您可以从一开始就注册您的函数,并在此处检查是否已达到开始日期。

    <html>
        <head>
            <script type="text/javascript">
                var startDate = new Date("2015-06-14 12:47");
                window.setInterval(checkDate, 1000);
    
                function checkDate()
                {
                    if (new Date() > startDate)
                        myDate.value = new Date().toLocaleString(); //or do your alert ;)
                }
            </script>
        </head>
        <body>
            <input type="text" id="myDate" style="width: 200px" />
        </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多