【问题标题】:Having an issue with displaying time left to a school class显示留给学校班级的时间有问题
【发布时间】:2015-01-14 12:29:04
【问题描述】:

我对这段代码有疑问:

    <script>

function timeCounter(){

public var endtime = [29700000, 32400000, 36000000, 38700000, 44100000, 46800000, 53100000];

public var currentTime = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds());

public var miliseconds = 1;

public var seconds = miliseconds * 1000;

public var minutes = seconds * 60;

public var hours = minutes * 60;

public var days = hours * 24;

public var years = days * 365;



public var numYears = Math.floor(diff / years);

public var numDays = Math.floor((diff % years) / days);

public var numHours = Math.floor((diff % days) / hours);

public var numMinutes = Math.floor((diff % hours) / minutes);

public var numSeconds = Math.round((diff % minutes) / seconds);



 }

  </script>

我想在这样的表中调用它:

 <tr>
    <td> 08:15-09:00 </td>

    <td> 

    <script>

    document.getElementById("t01").innerHTML = numYears;

    setInterval(countDown(endtime), 1000);

    var diff = (document.getElementById("demo").innerHTML = endtime[0]); - currentTime;

         document.write("Time left to next class: " (diff / 3600000); " hours and " (diff / 60000); " minutes.");

    </script>

    </td>

  </tr>

我做错了什么??

【问题讨论】:

  • 有什么问题吗?如果您打开浏览器的错误控制台,您会在那里看到错误消息吗?
  • 你的例子没什么意义。 n 是什么? diff 是什么?元素t01 在哪里?方法timeCounter() 在何时何地执行?还有,这是作业吗?
  • javascript 中没有 public 关键字。不过,这是一个未来的保留字。

标签: javascript math arraylist difference


【解决方案1】:

我认为您在函数中定义的变量不能在该函数之外访问。在函数之外定义它们,然后像​​这样设置它们:

var globalVariable;

function setVariable(){
  globalVariable = "value";  
}

发布您收到的错误(如果有)也可能很有用。也许这个函数永远不会被调用。

【讨论】:

    【解决方案2】:

    在您的代码中:

    <script>
      function timeCounter(){
        public var endtime = [29700000, 32400000, 36000000, 38700000, 44100000, 46800000, 53100000];
    

    public 是未来的保留字。在上面,这是一个语法错误。也许你的意思是:

        var endtime = [29700000, 32400000, 36000000, 38700000, 44100000, 46800000, 53100000];
    

    它在 timeCounter 函数中创建一个变量,并在函数被调用时分配给它一个数组,而不是之前。

    稍后你有:

      document.getElementById("t01").innerHTML = numYears;
    

    在提供的标记中没有 ID 为“t01”的元素。

    numYears 是在 timeCounter 内创建的,并且是该函数的本地函数。在这里它会抛出一个引用错误,因为它没有在这段代码的范围内定义。

    那么你有:

      setInterval(countDown(endtime), 1000);
    

    调用函数countDown,将endtime的值传递给它,这与numYears有同样的问题。结果被传递给 setInterval,它需要一个函数对象或一些可以执行的代码。

    您还没有显示 countDown 的代码或说明它返回的内容,因此无法说出这将是什么结果。

    代码中有很多错误。查看控制台,修复它们。修复上述问题是一个开始。

    【讨论】:

    • 嗯,我想要的是显示当你早上 8 点开始上学时还有多少时间,作为一种时间表插件。
    • 每个页面顶部都有一个search函数,试试看(例如[javascript] countdown clock。;-)
    猜你喜欢
    • 2019-07-12
    • 2020-04-11
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2020-06-12
    • 2013-01-18
    相关资源
    最近更新 更多