Robiłem niedawno coś podobnego, u mnie to działało w taki sposób:
Ilość czasu "do odliczenia" była tworzona w PHP na takiej zasadzie, że od czasu, w którym miało się zakończyć odliczenie odejmowałem obecny czas (odejmowanie przy pomocy funkcji
strtotime()). Następnie stworzyłem sobie funkcję w PHP, która zamieniała ilość sekund (tamto odejmowanie zwracało ilość pozostałych sekund) na "ludzki wzór", np: 12:31:14 (pozostało 12 godz, 31 min i 14 sek).
Ten czas był wyświetlany na stronie w jakimś DIVie o konkretnym ID. W zdarzeniu onload wykonywałem funkcję JS, która działała na tej zasadzie:
- pobierała obecny string z czasem - 12:31:14
- zamieniała ten czas na sekundy (nie znalazłem do tego funkcji w js więc napisałem własną)
- odejmowała od tego czasu 1 sekundę
- zamieniała nową ilość sekund na czas (w moim przykłądzie to bedzi 12:31:13)(także własna funkcja, gdyż nie znalazłem takiej w JS)
- podmieniała w DIVie stary czas na nowy
- na końcu za pomocą SetTimeout() funkcja była wykonywana co 1000ms, czyli 1 sek
Dało to taki wynik, że co sekundę ilość pozostałego czasu szedł w dół ^^
Musisz jeszcze pamiętać, że jeśli osiągnie 00:00:00, żeby przerwać czymś skrypt - np. ClearTimeout()
To tyle, mam nadzieję, że pomoże ^^