显示留给学校课堂的时间问题

时间:2015-01-14 12:29:04

标签: javascript math arraylist difference

我对此代码有疑问:

    <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>

我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

var globalVariable;

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

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

答案 1 :(得分:0)

在您的代码中,您有:

<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 的代码或显示它返回的内容,因此无法说出结果是什么。

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