我要做的是显示默认字符串,当达到某个时间时,它必须更新该字符串。字符串将在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
答案 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";
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)
您需要进行一些修改才能修复错误
Date()
更改为new Date()
无论在何处使用。 setTimeout(setDateChange()),timeTillNextDate);
到
setTimeout(setDateChange(),timeTillNextDate);
String
不是JS中的数据类型。因此,请将其更改为var
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();