سؤال

أريد أن أقوم بإجراء وظيفة إما باستخدام جافا سكريبت نقية أو الاستفادة منها أيضا من مسج العد لأسفل إلى وقت انتهائي مثل:

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

وينبغي أن يعرض في HTML مثل

<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>

في الواقع، سيكون الأمر أكثر أهمية إذا كان يمكن تحديث نفسه كل ثانية.

أنا ساذج جدا مع جافا سكريبت والارتباك حول كيفية الاقتراب، أي مساعدة ستكون موضع تقدير.

هل كانت مفيدة؟

المحلول

يمكنك استخدام jquery العد التنازلي

نصائح أخرى

الق نظرة على هذا: http://keith-wood.name/countdown.html.

يمكن القيام به في جافا سكريبت دون إضافات.

تحتاج إلى الحصول على وقت التاريخ الحالي، إلى القاسم الذي هو واحد أصغر مما تعرضه. مع مثالك، هذا يعني أنك بحاجة إلى الحصول على كل شيء إلى مللي ثانية.

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

ثم ابحث عن الفرق بين الوقت الحالي والوقت المطلوب. هذا يعطى لك في مللي ثانية.

var diff = endtime - currentTime;

نظرا لأن هذا يتم إرجاعه في مللي ثانية تحتاج إلى تحويلها إلى ثوان، دقائق وساعات وأيام وما إلى ذلك ... هذا يعني إنشاء عدد المللي ثانية في كل قاسم. ثم يمكنك استخدام وزارة الدفاع والتقسيم لإرجاع الرقم اللازم لكل وحدة. انظر أدناه.

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);

بمجرد أن يكون لديك القوامين التي تريد عرضها، يمكنك إرجاع هذا إلى صفحة HTML من خلال طرق مختلفة. علي سبيل المثال:

document.getElementById("tyears").innerHTML = numYears;

هذا يلخص طريقتك. ومع ذلك، لجعله يعمل على فاصل زمني محدد (وهذا هو السبب في تحديث شاشة HTML ضمن دالة JavaScript)، تحتاج إلى استدعاء الوظيفة التالية، وإعطاء اسم وظيفتك وتوفر الفاصل الزمني الخاص بك من حيث مللي ثانية.

//Call the count down timer function every second (measured in miliseconds)
setInterval(countDown(endtime), 1000);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top