0

我想在 Javascript 的帮助下显示我的 php 变量中的时间

我正在编写一个在线考试模块,我想在其中显示总经过时间

例如说

$time_elapsed// 包含从考试开始到现在所用的时间如果我有一个 div 说,

<div id="time"></div> 

如何从$time_elapsed加载每个问题的窗口后开始显示动态运行时间

请问各位大佬有这个答案吗。。

谢谢

4

4 回答 4

1

嗨,您可以为此目的使用以下代码

javascript将是:

var Timer;
var TotalSeconds,TotalMins, secs;
var elapsedtime ;

function CreateTimer(TimerID, Time) {
        Timer = document.getElementById(TimerID);
        TotalSeconds = Time;
        elapsedtime = 0
        time = Time
        secs = TotalSeconds%60;
        TotalMins = Math.floor(TotalSeconds/60)
        UpdateTimer()
        window.setTimeout("Tick()", 1000);
}

function Tick() {
if(TotalSeconds-elapsedtime>0)
{
    elapsedtime += 1;
    secs = (elapsedtime%60)-60;
    TotalMins = Math.floor(elapsedtime/60)
    UpdateTimer()
    window.setTimeout("Tick()", 1000);
}
else
alert("time up")
}

function UpdateTimer() {
        Timer.innerHTML = TotalMins + ":" + secs;
}

nw 创建一个要显示运行时间的 html div。

html:

<div id='timer' />
<script type="text/javascript">window.onload = CreateTimer("timer", 5);</script>

给参数时间限制。它会在时间结束后发出警报。

并在刷新页面后获取时间使用 html5 的 sessionStorage

访问Html5 存储文档以获取更多详细信息。使用它,您可以在本地临时/永久存储中间值,然后访问您的值以存储会话的值

sessionStorage.getItem('label')
sessionStorage.setItem('value', 'label')

或使用永久存储值

localStorage.getItem('label')
localStorage.setItem('value', 'label')

因此,您可以使用 html5 存储对象在多个页面之间存储(临时)表单数据

于 2012-07-04T10:00:00.800 回答
1

这是如何显示动态时间。要使用其他基于 php 的开始时间,请将该行替换time0 = new Date();time0 =<?php echo $startTime;?>; which should be in ms since the epoch.

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>elapsed time demo</title>
    <script type="text/javascript">
        var time0;
        function initTime() {
            time0 = new Date();
            window.setInterval("updateTime()", 1000);
        }
        function updateTime() {
            var timeNow = new Date();
            var deltas = (Number(timeNow) - Number(time0))/1000;
            var deltah = ("0"+String(Math.round(deltas / 3600))).substr(-2);
            deltah = deltah.substr(-2);
            deltas %= 3600;
            var deltam = ("0"+String(Math.round(deltas / 60))).substr(-2);
            deltas = ("0"+String(Math.round(deltas % 60))).substr(-2);
            document.getElementById("timedisplay").firstChild.data=deltah+":"+deltam+":"+deltas;
        }
    </script>
</head>
<body onload="initTime();">
    <div> elapsed time <span id="timedisplay">00:00:00</span></div>
</body>
</html>​
于 2012-07-04T10:31:49.150 回答
0

您的 php 代码应该返回加载页面时经过的时间,但是,javascript 将接管并随着时间的推移增加该时间。

于 2012-07-04T09:48:28.560 回答
0

您可以将参数发送到您的 JavaScript 函数,即显示时间

      function display_time(int time)
      {
        //your code for further integration
      }

您可以使用以下方式将参数发送到 JavaScript 函数

      //call the function at the time display time
       display_time(<?php echo $time_elapsed ?>)
于 2012-07-04T09:59:14.530 回答