Javascript时间问题

Javascript time issue

本文关键字:问题 时间 Javascript      更新时间:2023-09-26

我有这个代码:

<script type="text/javascript">
var currenttime = '<? print date("F d, Y H:i:s", time()) ?>'
var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var serverdate=new Date(currenttime)
function padlength(what){
var output=(what.toString().length==1)? "0"+what : what
return output
}
function displaytime(){
serverdate.setSeconds(serverdate.getSeconds()+1)
var datestring=montharray[serverdate.getMonth()]+" "+padlength(serverdate.getDate())+", "+serverdate.getFullYear()
var timestring=padlength(serverdate.getHours()+1)+":"+padlength(serverdate.getMinutes())+":"+padlength(serverdate.getSeconds())
var minleft=60-serverdate.getMinutes()
var secleft=60-serverdate.getSeconds()
var houleft=24-serverdate.getHours()+1
var newenergyin=padlength(minleft)+":"+padlength(secleft)
var gainin=padlength(houleft)+":"+padlength(minleft)+":"+padlength(secleft)
document.getElementById("servertime").innerHTML=timestring
document.getElementById("moreenergy").innerHTML=newenergyin
document.getElementById("inter").innerHTML=gainin
}
window.onload=function(){
setInterval("displaytime()", 1000)
}
</script>

我的有问题

document.getElementById("inter").innerHTML=gainin

代码的一部分。如果我做

<span id='inter'></span>

它不想工作,但我用做的前一个

document.getElementById("moreenergy").innerHTML=newenergyin

工作非常好。

我做错了什么?!我只想显示午夜倒计时,倒计时到下一个小时效果良好:S

HTML:

<td><center><b>- Currency -</b></center>Credits: <a href='main.php?id=depcre'>0</a>    
<br>Platinum: <font color='orange'>46</font><br>Waste Magic: <font color='orange'>48</font>    
<br>Copper: <font color='orange'>49</font><br>Silver: <font color='orange'>48</font>    
<br>Gold: <font color='orange'>47</font><br><br>Bank: <a href='main.php?id=witcre'>841</a>    
<Small> (<font color='orange'>0.25%</font> IGDA)</small><br>Interest Gain In: <font     color='orange'><span id='inter'></span></font></td>

好的,整个HTML:

<script type="text/javascript">
var currenttime = '<? print date("F d, Y H:i:s", time()) ?>'
var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var serverdate=new Date(currenttime)
function padlength(what){
var output=(what.toString().length==1)? "0"+what : what
return output
}
function displaytime(){
serverdate.setSeconds(serverdate.getSeconds()+1)
var datestring=montharray[serverdate.getMonth()]+" "+padlength(serverdate.getDate())+", "+serverdate.getFullYear()
var timestring=padlength(serverdate.getHours()+1)+":"+padlength(serverdate.getMinutes())+":"+padlength(serverdate.getSeconds())
var minleft=60-serverdate.getMinutes()
var secleft=60-serverdate.getSeconds()
var houleft=24-serverdate.getHours()+1
var newenergyin=padlength(minleft)+":"+padlength(secleft)
var gainin=padlength(houleft)+":"+padlength(minleft)+":"+padlength(secleft)
document.getElementById("servertime").innerHTML=timestring
document.getElementById("moreenergy").innerHTML=newenergyin
document.getElementById("inter").innerHTML=gainin
}
window.onload=function(){
setInterval("displaytime()", 1000)
}
</script>
    <tr>
        <td><center><b>- Stats [<a href='main.php?id=<?php echo $page;?>'>Refresh</a>] -</b></center>Level: <font color='orange'><?php echo $GETVAR[PL_LEVL]; ?></font><br>Experience: <font color='orange'><?php echo $GETVAR[PL_CUREXP]; ?></font>/<font color='orange'><?php echo $GETVAR[PL_NEXEXP]; ?></font><br>Energy: <font color='orange'><?php echo $GETVAR[PL_CURENG]; ?></font>/<font color='orange'><?php echo $GETVAR[PL_NEXENG]; ?></font><br>Skill: <font color='orange'><?php echo $GETVAR[PL_SKILL]; ?></font><br>HP: <font color='orange'><?php echo $GETVAR[PL_CURHP]; ?></font>/<font color='orange'><?php echo $GETVAR[PL_MAXHP]; ?></font><br>Hit Rate: <font color='orange'><?php echo $GETVAR[PL_HITRATE]; ?></font><br>
<?php
$cureng = $GETVAR['PL_CURENG'];
$nexeng = $GETVAR['PL_NEXENG'];
$curhit = $GETVAR['PL_CURHP'];
$maxhit = $GETVAR['PL_MAXHP'];
if(($cureng == $nexeng) && ($curhit == $maxhit))
{
    echo "<br>";
}else
{
    echo "Energy and HP Increase in: <font color='orange'><span id='moreenergy'></span>    </font>";
}

?></td>
    </tr>
    <tr>
        <td><center><b>- Currency -</b></center>Credits: <a href='main.php?    id=depcre'><?php echo $GETVAR[PL_CRED]; ?></a><br>Platinum: <font color='orange'><?php echo     $GETVAR[PL_PLAT]; ?></font><br>Waste Magic: <font color='orange'><?php echo     $GETVAR[PL_WAMA]; ?></font><br>Copper: <font color='orange'><?php echo $GETVAR[PL_COPP]; ?>    </font><br>Silver: <font color='orange'><?php echo $GETVAR[PL_SILV]; ?></font><br>Gold:     <font color='orange'><?php echo $GETVAR[PL_GOLD]; ?></font><br><br>Bank: <a href='main.php?    id=witcre'><?php echo $GETVAR[PL_BANK]; ?></a><Small> (<font color='orange'><?php echo     $GETVAR[PL_INTR]*10;?>%</font> IGDA)</small><br>Interest Gain In: <font color='orange'>    <span id='inter'></span></font></td>
    </tr>
    <tr>
        <td><center><b>- You -</b></center>
                <a href='main.php?id=news'>News</a><br>
                <a href='main.php?id=yourhome'>Your Home</a><br>
                <a href='main.php?id=yourmage'>Your Mage</a><br>
                <a href='main.php?id=puppets'>Your Puppets</a><br>
                <a href='main.php?id=enchants'>Your Enchants</a><br>
                <a href='main.php?id=clan'>Your Clan</a><br>
                <a href='main.php?id=pm'>Mailbox</a></td>
    </tr>
    <tr>
        <td height=100%>    <center><b>- Navigation -</b></center>
                <a href='main.php?id=townarea'>Town of Tolbart</a><br>
                <a href='main.php?id=skilupgr'>Skill Upgrades</a><br>
                <a href='main.php?id=colloseu'>Colloseum</a><br>
                <a href='main.php?id=wastmagi'>Waste Magic Center</a><br>
                <a href='main.php?id=field'>Field</a><br>
                <a href='main.php?id=market'>Market</a><br>
                <a href='main.php?id=gather'>Gathering</a><br>
                <a href='main.php?id=darkmagi'>Dark Magic Workshop</a><br>
                <a href='main.php?id=research'>Research Facility</a><br>    <br>
                <a href='main.php?id=logout'>Log Out</a>
<br>Game Time: <span class="servertime" id="servertime"></span>
</td>
            </tr> 

我已经从问题中删除了所有php,使其更加简单。看来您的java脚本运行良好。

你可以看到它在我的js fiddle 上运行

注:

您可以使用javascript Date()类,而不是从php获取日期。

同时尽量不要在setInterval中使用字符串(setInterval对字符串使用eval)。尝试使用以下

setInterval(function(){displaytime()},1000)