getTime JS代码无法正常工作

时间:2015-07-10 16:01:38

标签: javascript

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

这是我的代码:

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

JsFiddle链接在这里:JSFiddle Code

3 个答案:

答案 0 :(得分:1)

Date()替换为(new Date()),如@PraveenKumar建议的那样。

除此之外,您还有语法错误

String output ="Welcome to the All-Stars Summit Registration Site, Canada";

应该是,

var output ="Welcome to the All-Stars Summit Registration Site, Canada";

检查javaScript Strings

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

答案 1 :(得分:1)

您需要进行一些修改才能修复错误

  1. Date()更改为new Date()无论在何处使用。
  2. 删除额外的括号。修改
  3. setTimeout(setDateChange()),timeTillNextDate);

    setTimeout(setDateChange(),timeTillNextDate);

    1. String不是JS中的数据类型。因此,请将其更改为var
    2. String output var output

答案 2 :(得分:0)

是否可以将所有Date()替换为:

(new Date())

由于大部分功能都适用于object而非class。例如:

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();