Как показать отсчет таймера одинаковым для всех?
Та зачем так усложнять, передавайте в JS timestamp (например time()), и делайте таймер обратного отсчета на JS с помощью new Date(milliseconds) ориентируясь на дату окончания. Суть в том что timestamp не привязан к таймзоне и всегда UTC0, а JS Date преобразовывает timestamp в дату+время с учетом часового пояса компа и все будут видеть одинаковое время до окончания.
Если тупо делать: Каждые 5-15 секунд, пока открыта страница, ajax-ом спрашивайте сервер: сколько осталось до нуля? И показывайте его на странице.
А в промежутках - пусть интервал между запросами на сервер - считает таймер клиента.
Чем чаще запрос на сервер - тем точнее будет синхронизация.
Мега-синхронно - только web-socket. (но не думаю, что Вам это нужно)