下面是根据系统时钟计算出自上午8:30以来的小时和分钟的代码,这仅用于内部目的,因此我不会对最佳做法感到兴奋
<html>
<head>
<title>Time Past Since</title>
<meta http-equiv="Refresh" content="60">
<script>
window.resizeTo(300,100);
sd = new Date(); // Get system date (sd)
sh = sd.getHours(); // Get system hour (sh)
sm = sd.getMinutes(); // Get system minutes (sm)
wh = (08); // Specify work start hour (wh)
wm =(30); // Specify work start minute (wh)
ts = ((sh *60 + sm) - (wh *60 + wm)); // Specify time since (ts) in minutes
hs = Math.floor(ts/60); // Convert the hours (hs)
ms = Math.round((ts/60 % 1) * 60); // Convert the minutes (ms)
fh = hs < 10 ? "0" : "" // Format Hours (fh)
fm = ms < 10 ? "0" : "" // Format Minutes (fm)
</script>
</head>
<body>
<center><script>document.write(fh + hs + " hours " + fm + ms + " minutes."); </script></center>
正如你所看到的,我每隔60秒就使用一个meta来刷新页面,我更喜欢的是另一种计算差异的document.write。
我知道内联html是一种替代方案,但我似乎无法让它工作,我的代码的工作示例会非常棒,提前感谢。
答案 0 :(得分:1)
以下是我认为您想要做的事情的片段。我按照要求使用了您的代码,尽管有更有效的方法来计算两次之间的差异。如果您有兴趣,请参阅this SO question。
<html>
<head>
<title>Time Past Since</title>
</head>
<body>
<center id="time">Test</center>
<script>
window.resizeTo(300,100);
updateTime();
setInterval(updateTime, 60000);
function updateTime() {
sd = new Date(); // Get system date (sd)
sh = sd.getHours(); // Get system hour (sh)
sm = sd.getMinutes(); // Get system minutes (sm)
wh = (08); // Specify work start hour (wh)
wm =(30); // Specify work start minute (wh)
ts = ((sh *60 + sm) - (wh *60 + wm)); // Specify time since (ts) in minutes
hs = Math.floor(ts/60); // Convert the hours (hs)
ms = Math.round((ts/60 % 1) * 60); // Convert the minutes (ms)
fh = hs < 10 ? "0" : ""; // Format Hours (fh)
fm = ms < 10 ? "0" : ""; // Format Minutes (fm)
document.getElementById("time").innerHTML = fh + hs + " hours " + fm + ms + " minutes.";
}
</script>
</body>
</html>
&#13;
我将时间计算包装在一个名为updateTime
的函数中,并使其每60秒运行一次。它无需刷新即可更新文本。
我将该函数命名为而不是使其成为匿名函数,因为我们需要在首次加载页面时调用它。
别忘了点击绿色&#34;接受答案&#34;按钮,如果我回答你的问题!
答案 1 :(得分:0)
这不是最干净的方法,但听起来你并不在乎。
<html>
<head>
<title>Time Past Since</title>
<script>
window.resizeTo(300,100);
setInterval(function(){
var sd = new Date(), // Get system date (sd)
sh = sd.getHours(), // Get system hour (sh)
sm = sd.getMinutes(), // Get system minutes (sm)
wh = (08), // Specify work start hour (wh)
wm =(30), // Specify work start minute (wh)
ts = ((sh *60 + sm) - (wh *60 + wm)), // Specify time since (ts) in minutes
hs = Math.floor(ts/60), // Convert the hours (hs)
ms = Math.round((ts/60 % 1) * 60), // Convert the minutes (ms)
fh = hs < 10 ? "0" : "", // Format Hours (fh)
fm = ms < 10 ? "0" : "", // Format Minutes (fm)
str = fh + hs + " hours " + fm + ms + " minutes.";
document.getElementById('display').innerHTML = str;
}, 60000);
</script>
</head>
<body>
<div><center id="display"></center></div>
</body>
</html>