Jump to content

Counting the time down question .. please help


apw

Recommended Posts

Hello

 

I wrote a simple but effective countdown script .. you simply plug in the time (*nix time) that you

want the script to end and it will countdown from now using the time(); function .. which is all good

in a way, however here is what I'm running into the problem. I included the code below that I use

for this simple script but as the time goes on, poor player has to keep hitting refresh for the time

to update. This is because I store the time(); in my database along with the future time.

 

Instead of poor player A having to keep hitting the refresh button is there a way I can script this

to where no refresh is needed and the time continues to update then when the $ctime (current time)

hits $etime (future time) the script stops and say it updates the database?

 

I figured $etime by taking this and doing a simple:

$etime = 30; Time I want to advance the current real time.

So .. then I subtracted $etime - $ctime to get the difference

 

But you already knew that ..

 

If you could give me a hand, I'd greatly appreciate it, even simpilify my messy code to possibly

get the result I'm looking for ..

 

How about a javascript .. would that work as well? I have an exaple below the first set of code

the code runs until the timer reaches 0 then restarts .. instead of restarting maybe have the code

just end and preform a DB update?

 

// Sets and posts current time to DB

$my_time=time(); // current time
$update_time="update bbg_timers set ctime='$my_time' where username='$username'";
mysql_query($update_time) or die("could not query");

$time_remain2=$etime-$ctime;
// $time_remain2=$ctime-$etime;

$difference=$time_remain2;


$difference=$time_remain2;
$hours_difference = floor($difference / 3600);
$difference = $difference % 3600;
$minutes_difference = floor($difference / 60);
$seconds_difference = $difference % 60;
$secshow = false;
$timeleft = '';
if ($hours_difference > 0)
{
$timeleft .= $hours_difference . 'h ';
}
else
{
$secshow = true;
}
if ($diff > 60)
{
$timeleft .= $minutes_difference . 'm ';
}
elseif ($diff > 60 && !$seconds)
{
$timeleft = '<1m';
}
if ($secshow)
{
$timeleft .= $seconds_difference . 's ';
}
if ($diff < 0)
{
print "Diff is < 0";
}
if (($diff * 60) < 15)
{
// print "You have $hours_difference hours, $minutes_difference minutes, and $seconds_difference remaining";
}
}

 

Here is the other javascript code I was talking about -- I took this from the footer file of my bnt game (giving credit)

so I'm not exactly sure what some of the code means

 

// Update counter

$res = $db->Execute("SELECT last_run FROM $dbtables[scheduler] LIMIT 1");
$result = $res->fields;
$mySEC = ($sched_ticks * 60) - (TIME()-$result[last_run]);
?>
<script language="javascript" type="text/javascript">
var myi = <?=$mySEC?>;
setTimeout("rmyx();",1000);

function rmyx()
{
 myi = myi - 1;
 if (myi <= 0)
 {
 myi = <? echo ($sched_ticks * 60); echo "\n";?>
 }
 document.getElementById("myx").innerHTML = myi;
 setTimeout("rmyx();",1000);
}
</script>
<?
echo " <b><span id=myx>$mySEC</span></b> $l_footer_until_update <br>\n";
// End update counter

 

Thanks again

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.