Te recomiendo que cuando empiece guardes el Time() como variable de sesión ($_SESSION) y a partir de ahí si se recarga utilices ese valor:
Código PHP:
<div id="countdown"></div>
<script type="text/javascript">
var countdown_time = 60; //secconds
<?php
if(isset($_SESSION['countdown_start'])){
echo "countdown_time -= ". time() - $_SESSION['countdown_start'] . ";";
}else{
$_SESSION['countdown_start'] = time();
}
?>
function countdown(cd_time){
document.getElementById('countdown').innerHTML = cd_time;
countdown = setInterval( function(){
if(cd_time>0){
cd_time--;
document.getElementById('countdown').innerHTML = cd_time;
}else{
showButton();
clearInterval(countdown);
}
}, 1000);
}
function showButton(){
document.getElementById('countdown').innerHTML = "<a href='mipagina.com'>Continuar</a>"
}
document.addEventListener("load", countdown(countdown_time), false);
</script>
No sé si me dejo algo, es lo que me ha salido así rapido