 <p>If you want the page to count down every second, rather than only on refresh, you should use JavaScript. There are many <a href="http://scripts.franciscocharrua.com/countdown-clock.php" rel="nofollow noreferrer">examples</a> out there, and others can be found using google by searching for Javascript Countdown</p> <p>If you wanted to do it in PHP, the best way is to use <a href="http://uk.php.net/mktime" rel="nofollow noreferrer">mktime()</a> to get the unix timestamp of when the time ends, and the value from <a href="http://uk.php.net/time" rel="nofollow noreferrer">time()</a>.</p> <p>Find the difference, and then you can calculate the time left:</p> <pre><code>$diff = mktime(...) - time(); $days = floor($diff/60/60/24); $hours = floor(($diff - $days*60*60*24)/60/60); </code></pre> <p>etc.</p> <p><strong>EDIT</strong> </p> <p>Javascript...</p> <p>Basic idea of the <a href="http://www.w3schools.com/jsref/jsref_obj_date.asp" rel="nofollow noreferrer">date object</a></p> <pre><code>var date = new Date(); //gets now var weekday = date.getDay(); //gets the current day //0 is Sunday. 6 is Saturday if ( weekday == 0 ){ date.setTime()(date.getTime()+60*60*24); //increase time by a day } if ( weekday == 6 ){ date.setTime()(date.getTime()+60*60*24*2); //increase time by two days } //need to check if we have already passed 16:30, if ( ( date.getHours() == 16 &amp;&amp; date.getMinutes() &gt; 30 ) || date.getHours() &gt; 16){ //if we have, increase the day date.setTime()(date.getTime()+60*60*24) } date.setHours(16); date.setMinutes(30); //now the date is the time we want to count down to, which we can use with a jquery plugin </code></pre>