Javascript getTime JS代码工作不正常

Javascript getTime JS代码工作不正常,javascript,Javascript,我试图做的是显示一个默认字符串,当到达某个时间时,它必须更新该字符串。字符串将在后面有css的h1中更新 这是我的代码: <h1 id="header" class="loginhead" ></h1> <script> //pu8t in onload document.onload = setDateChange(); function setDateChange(){

我试图做的是显示一个默认字符串,当到达某个时间时,它必须更新该字符串。字符串将在后面有css的h1中更新

这是我的代码:

<h1  id="header" class="loginhead" ></h1> 
    <script>
        //pu8t in onload
        document.onload = setDateChange();

        function setDateChange(){
            // datestring format yyyy-mm-dd hh:mm:ss
            String output ="Welcome to the All-Stars Summit Registration Site, Canada";
            if (Date().getTime() > Date("2015-07-15 23:59:00").getTime())
                {
                    output ="The All-Stars Summit Registration Site, Canada, is now closed";
                }
        document.getElementById('header').innerHTML = output; //change the html/text inside of the span with the id closed'.
        }

    setDateChange();

    //figure out which date is next
    //*********************
    var timeTillNextDate = Date("2015-07-15 23:59:00").getTime();
    var timeTillRun = Date("2015-07-15 23:59:00").getTime() - Date().getTime();
    if(timeTillRun > 0){
        setTimeout(setDateChange()), timeTillNextDate); //will wait to call changeHeader function until timeTillChange milliseconds have occured.
    }
    </script>

//pu8t空载
document.onload=setDateChange();
函数setDateChange(){
//日期字符串格式yyyy mm dd hh:mm:ss
String output=“欢迎来到全明星峰会注册网站,加拿大”;
如果(Date().getTime()>Date(“2015-07-15 23:59:00”).getTime())
{
output=“加拿大全明星峰会注册网站现已关闭”;
}
document.getElementById('header')。innerHTML=output;//在id关闭的情况下更改范围内的html/文本。
}
setDateChange();
//找出下一个日期
//*********************
var timeTillNextDate=Date(“2015-07-15 23:59:00”).getTime();
var timeTillRun=Date(“2015-07-15 23:59:00”).getTime()-Date().getTime();
如果(timeTillRun>0){
setTimeout(setDateChange()),timeTillNextDate);//将等待调用changeHeader函数,直到发生timeTillChange毫秒。
}

JsFiddle链接在这里:

能否请您将所有的
Date()
替换为:

(new Date())
因为大多数函数都在
对象上工作,而不是在
类上工作。例如:

var timeTillNextDate = (new Date("2015-07-15 23:59:00")).getTime();
var timeTillRun = (new Date("2015-07-15 23:59:00")).getTime() - (new Date()).getTime();
按照@PraveenKumar的建议,将
Date()
替换为
(新日期())

除此之外,这里还有一个语法错误

String output=“欢迎来到加拿大全明星峰会注册网站”

应该是,

var output=“欢迎来到加拿大全明星峰会注册网站”

检查

而且
setTimeout(setDateChange(),timeTillNextDate)
应该是
setTimeout(setDateChange,timeTillNextDate)

最终的js代码看起来像

document.onload = setDateChange();

            function setDateChange(){
                // datestring format yyyy-mm-dd hh:mm:ss
                var output ="Welcome to the All-Stars Summit Registration Site, Canada";
                if (new Date().getTime() > (new Date("2015-07-15 23:59:00").getTime()))
                    {
                        output ="The All-Stars Summit Registration Site, Canada, is now closed";
                    }
            document.getElementById('header').innerHTML = output; //change the html/text inside of the span with the id closed'.
            }

        setDateChange();

        //figure out which date is next
        //*********************
        var timeTillNextDate = (new Date("2015-07-15 23:59:00")).getTime();
        var timeTillRun = (new Date("2015-07-15 23:59:00")).getTime() - (new Date()).getTime();
        if(timeTillRun > 0){
            setTimeout(setDateChange, timeTillNextDate);  //have occured.
        }

您需要做一些修改来修复错误

  • Date()
    更改为
    new Date()
  • 去掉多余的括号。修改
  • setTimeout(setDateChange()),timeTillNextDate)

    setTimeout(setDateChange(),timeTillNextDate)

  • String
    不是JS中的数据类型。因此,将其更改为
    var
  • 字符串输出
    变量输出