显示学校班级的剩余时间时遇到问题

Having an issue with displaying time left to a school class

本文关键字:时间 问题 遇到 余时间 学校 显示      更新时间:2023-09-26

我对这段代码有问题:

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

我做错了什么??

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

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

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

在你的代码中,你有:

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

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

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

它在 timeCounter 函数内创建一个变量,并在调用函数时(而不是之前)为其分配一个数组。

稍后您将:

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

提供的标记中没有 ID 为"t01"的元素。

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

然后你有:

  setInterval(countDown(endtime), 1000);

它调用函数 countDown,向其传递结束时间的值,这与 numYears 具有相同的问题。结果被传递给 setInterval,它需要一个函数对象或一些可以执行的代码。

您尚未显示 countDown 的代码或指示它返回的内容,因此无法说出结果会是什么。

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

相关文章: