$expire = time() + 1800;
время пишешь в базу, на странице выводишь его в js переменную, в том коде это
var remainTime = <?php echo $x_time; ?>;
далее скрипт просто вычитает из заданной метки времени текущую, и получаешь остаток времени в секундах, из них вычисляешь остаток часов, минут, секунд. Через setInterval обновляется остаток. В том коде всё это есть.