Gerisayım işlemi tamamen javascript konusu. Sayfa yüklendikten sonra bir html elementine konmuş bir tarih ile şimdiki zaman arasındaki farkı hesaplayıp sonra da bu farkı gün, saat, dakika, saniye cinsinden yazdırmak, bu işlemi her saniyede tekrar etmek.
Bunun için ilk adım sonucu tarafında veritabanındaki bir tarihzaman alanını bir html elemanının bir attribute'ine yazdırmaktır. Örneğin bu elemanın tarayıcıdaki çıktısı şöyle olsun. Countdown idli divin sonzaman adlı attribute'ine son zamanı atadık.
<div id="countdown" sonzaman="2014-08-30 15:00:00"></div>
Bundan sonraki iş her saniyede bir çalıştırılacak bir javascript fonksiyonu.
<script>
// Zaman Birimleri
var gun, saat, dakika, saniye;
// Eleman
var countdown = document.getElementById("countdown");
// Elemandaki son zamanı öğrenelim
var sonzaman = new Date(countdown.getAttribute("sonzaman")).getTime();
// Elemanın içini her saniyede bir güncelleyelim
setInterval(function () {
// Şu an ile sonzaman arasındaki farkı tespit ediyoruz
var suan = new Date().getTime();
// Javascript zamanı milisaniye olduğu için saniye çeviriyoruz
var fark = (sonzaman - suan) / 1000;
// Bir gün 86400 saniyedir, bir saat 3600 ve bir dakika 60 saniyedir.
gun = parseInt(fark / 86400);
// günü çıkardıktan sonra kalan saniye
fark = fark % 86400;
//Aynı hesaplar saat ve dk için
saat = parseInt(fark / 3600);
fark = fark % 3600;
dakika = parseInt(fark / 60);
saniye = parseInt(fark % 60);
// Son olarak elemanın içine yazdırıyoruz.
countdown.innerHTML = gun + " gün, " + saat + " saat, " + dakika + " dakika, " + saniye + " saniye kaldı.";
}, 1000);
</script>
Bu bize her saniyede bir "23 gün, 19 saat, 3 dakika, 40 saniye kaldı." gibi bir sonuç verir.
Tabii muhtemelen birden çok ürün olacaktır, öyle bir durumda en iyisi jQuery kullanarak, yukarıda daha net anlaşılması için id üzerinden verdiğim örneği class üzerinden ve each fonksiyonunu v.b kullanarak halletmektir. Eğer süre bitiminde ürünün silinmesi gerekiyorsa, ilk fark 0 veya küçük olduğunda sunucuya bir ajax gönderip kaydı silebilir ve gösterilen html elemanını da Dom ağacından kaldırırabilirsiniz.