Вопрос времени Javascript - PullRequest
0 голосов
/ 05 марта 2012

У меня есть этот код:

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

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

Я удалил весь php из вопроса, чтобы сделать его более простым. Кажется, ваш java-скрипт работает нормально.

Вы видите, что он работает на my js fiddle

ПРИМЕЧАНИЕ:

Вы можете использовать класс Date () в javascript вместо получения даты из php.

Также старайтесь не использовать строку в setInterval (setinterval использует eval в строке). Попытка использовать следующее вместо

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

0 голосов
/ 05 марта 2012

Точки с запятой необходимы для завершения операторов в JavaScript. Ваш код пропускает их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...