简体   繁体   English

使用Java的倒数计时器

[英]CountDown Timer Using Javascript

I m working on online examination i just wnat to start timer at exam start and want to end as exam finish i hv endtime on my cotroller and im passing that endtime on view i want to start timer between system time and end time 我正在从事在线考试,我只是想在考试开始时启动计时器,并想在考试结束时结束,所以我在cotroller上使用了结束时间,并且在查看时通过了该结束时间,我想在系统时间和结束时间之间启动计时器

Controller 控制者

public ActionResult TestStarted(int TestId,DateTime End_Time)
        {
            ViewBag.ct = 0;
            ViewBag.TestId = TestId;

            EAssessmentNew.BAL.StudentBal studBal = new EAssessmentNew.BAL.StudentBal();
            EAssessmentNew.Dal.Student_Answer_Master _studAnsdal = new       EAssessmentNew.Dal.Student_Answer_Master();


            ViewBag.EndTime = End_Time;
        }

View 视图

<script type="text/javascript">





    var days, hours, minutes, seconds;


    var countdown = document.getElementById("lblCtime");


setInterval(function () {


    var current_date = new Date().getTime();
    var seconds_left = ( @ViewBag.EndTime - current_date) / 1000;


    days = parseInt(seconds_left / 86400);
    seconds_left = seconds_left % 86400;

    hours = parseInt(seconds_left / 3600);
    seconds_left = seconds_left % 3600;

    minutes = parseInt(seconds_left / 60);
    seconds = parseInt(seconds_left % 60);


    countdown.innerHTML = days + "d, " + hours + "h, "
    + minutes + "m, " + seconds + "s";  

}, 1000);
</script>

Suppose i have EndTime 1:00 PM and System Time 12:00 PM how can i start timer betwwen these two times as i want to convert my EndTime 1:00 PM into milliseconds as current date in my script returns me time in milliseconds. 假设我有EndTime 1:00 PM和System Time 12:00 PM,我如何在这两次之间启动计时器,因为我想将EndTime 1:00 PM转换为毫秒,因为脚本中的当前日期以毫秒为单位返回了我的时间。

What you need to do is whenever the user click on the Give Exam add the time to the Duration of exam that you are going to give him (ie Exam Start Time 1PM and you are giving user to 1 Hour of Time to Complete the Exam then you need to pass the date with the time 1PM + 1 HOUR More so it will count from that datetime to finish the exam) and pass this as End date with this function 您需要做的是每当用户单击“给予考试”时,将时间添加到您要给予他的考试持续时间中(例如,考试开始时间1PM,而您给用户留出1小时的时间来完成考试),然后您需要将日期传递为1PM + 1 HOUR More时间,以便从该日期时间开始算起才能完成考试),并使用此功能将其作为结束日期传递

<script>
    var end = new Date('08/14/2014 12:00 PM');

        var _second = 1000;
        var _minute = _second * 60;
        var _hour = _minute * 60;
        var _day = _hour * 24;
        var timer;

        function showRemaining() {
            var now = new Date();
            var distance = end - now;
            if (distance < 0) {

                clearInterval(timer);
                document.getElementById('countdown').innerHTML = 'EXPIRED!';

                return;
            }
            var days = Math.floor(distance / _day);
            var hours = Math.floor((distance % _day) / _hour);
            var minutes = Math.floor((distance % _hour) / _minute);
            var seconds = Math.floor((distance % _minute) / _second);

            document.getElementById('countdown').innerHTML = days + 'days ';
            document.getElementById('countdown').innerHTML += hours + 'hrs ';
            document.getElementById('countdown').innerHTML += minutes + 'mins ';
            document.getElementById('countdown').innerHTML += seconds + 'secs';
        }

        timer = setInterval(showRemaining, 1000);
</script>

The end date will automatically count based on the server datetime and you need not to worry about the local time. 结束日期将根据服务器日期时间自动计数,您不必担心本地时间。

DEMO1 演示1

DEMO2 演示2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM