2010-02-08 3 views
5

geri sayım:javascript/jquery zaman aşağı gibi bir bitiş zamanına saymak saf JavaScript kullanarak veya ayrıca jquery yararlanan bir işlev ya yapmak istiyorum

//consumes a javascript date object 
function countDown(endtimme){ 
... 
} 

ve html göstermesi gerekir gibi

<div id="time_left_box"> 
    <h1>Time remaining</h1>: 

    <p>hours left: ..remaining day will be here## <p> 
    <p>minutes left: ##remaining day will be here## <p> 
    <p>seconds left: ##remaining day will be here## <p> 
</div> 

Her saniye kendini yenileyebiliyorsa, gerçekten daha da güzel olurdu.

javascript ve nasıl yaklaşılması konusunda kafası karışık çok naif değilim, herhangi bir yardım takdir edilecektir.

+0

Sorun için çok az bit var. Hangileri ile sorunlarınız var? – Quentin

cevap

2

Bu eklenti olmadan JavaScript yapılabilir.

Sen görüntüleyerek ne birden küçüktür payda aşağı, geçerli tarih saati almak gerekiyor. Örneğinizle, bu her şeyi milisaniyeye indirmeniz gerektiği anlamına gelir.

var currentTime = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds()); 

Şimdi ve istediğiniz zaman arasındaki farkı bulabilirsiniz. Bu size milisaniye cinsinden verilir. Bu milisaniye cinsinden döndürülür Çünkü

var diff = endtime - currentTime; 

Eğer bu kaç milisaniye her payda ne kadar kuran demektir ... vb saniye, dakika, saat, gün dönüştürmek gerekir. Daha sonra, her ünite için gereken sayıyı döndürmek için mod kullanabilir ve bölebilirsiniz. Aşağıya bakınız.

var miliseconds = 1; 
var seconds = miliseconds * 1000; 
var minutes = seconds * 60; 
var hours = minutes * 60; 
var days = hours * 24; 
var years = days * 365; 

//Getting the date time in terms of units 
//Floored so that they go together (to get just year/days/hours etc.. by themselves you need to use Math.round(diff/desired unit); 
var numYears = Math.floor(diff/years); 
var numDays = Math.floor((diff % years)/days); 
var numHours = Math.floor((diff % days)/hours); 
var numMinutes = Math.floor((diff % hours)/minutes); 
var numSeconds = Math.round((diff % minutes)/seconds); 

size farklı yöntemlerle html sayfanıza dönebilirsiniz görüntülemek istediğiniz paydaları sahip olduktan sonra. Örneğin, yönteminizi özetleyen bu

document.getElementById("tyears").innerHTML = numYears; 
. Bununla birlikte, belirli bir aralıkta çalışmasını sağlamak için (bu yüzden HTML işlevini JavaScript işlevinde güncellersiniz), aşağıdaki işlevi çağırmanız, işlev adınızı vermeniz ve aralığınızı milisaniye cinsinden belirtmeniz gerekir.
//Call the count down timer function every second (measured in miliseconds) 
setInterval(countDown(endtime), 1000); 
İlgili konular