Та зачем так усложнять, передавайте в JS timestamp (например time()), и делайте таймер обратного отсчета на JS с помощью new Date(milliseconds) ориентируясь на дату окончания. Суть в том что timestamp не привязан к таймзоне и всегда UTC0, а JS Date преобразовывает timestamp в дату+время с учетом часового пояса компа и все будут видеть одинаковое время до окончания.