基于实时时钟
Clock based in real time
本文关键字:实时时钟 更新时间:2023-09-26
我有一款ZORK风格的游戏,它有持续的警报和提示,并包括你需要持续的时间才能赢得它。
由于它有玩游戏的警报和提示,我无法使用设置的超时来运行时钟,所以我根据实时创建了一个时钟,但在使其工作时遇到了一些问题。
这是代码
var now = new Date();
var stS = now.getSeconds();
var stM = now.getMinutes();
var stH = now.getHours();
function getElapsedTime() {
setTimeout(function () {
var reS = now.getSeconds();
var reM = now.getMinutes();
var reH = now.getHours();
var elapS = reS - stS;
var elapM = reM - stM;
var elapH = reH - stH;
if (elapM < 0) {
reM = reM + 60;
elapM = reM - stM;
}
if (elapS < 0) {
reS = reS + 60;
elapS = reS - stS;
}
alert(elapS);
alert(elapM);
alert(elapH);
}, 10000);
}
getElapsedTime();
编辑:我在jsfiddle中运行它,但它返回警报,说没有时间过去,而它应该说已经过去了10秒。http://jsfiddle.net/t57wsrx8/
您使用的now
与10秒前开始使用的相同。Date
对象会保留给定的时间。它不会随着时间的推移而自动改变。您需要实例化一个新的now
:
function getElapsedTime() {
setTimeout(function () {
var now = new Date();
var reS = now.getSeconds();
var reM = now.getMinutes();
var reH = now.getHours();
var elapS = reS - stS;
var elapM = reM - stM;
var elapH = reH - stH;
if (elapM < 0) {
reM = reM + 60;
elapM = reM - stM;
}
if (elapS < 0) {
reS = reS + 60;
elapS = reS - stS;
}
alert(elapS);
alert(elapM);
alert(elapH);
}, 10000);
}
请注意,如果将日期视为数字,则可以更清晰地计算时间跨度:
var start = +new Date();
function getElapsedTime() {
setTimeout(function () {
var elapsed = +new Date() - start;
var elapS = Math.floor(elapsed / 1000) % 60;
var elapM = Math.floor(elapsed / 60000) % 60;
var elapH = Math.floor(elapsed / 3600000) % 24;
alert(elapS);
alert(elapM);
alert(elapH);
}, 10000);
}
getElapsedTime();
相关文章:
- 使用Facebook live API创建实时视频对象时的隐私设置
- 有任何可能将facebook实时信使整合到一个网站中
- 标记的实时更新,无需加载页面谷歌地图API V3
- 使用javascript进行实时图像处理
- 如何在jquery中使用实时计算求和值
- 如何使用Meteorjs构建实时应用程序
- 基于实时时钟
- AngularJs 控制器中的实时时钟功能
- 如何使时钟的显示与实时同步
- 在 aspx 页上显示实时时钟(使用服务器时间)
- 使用 AJAX 运行实时时钟
- 带有java脚本的实时时钟,显示实际的秒分和小时
- PHP,Javascript实时时钟:如何正确显示数据库上次更新的时间
- 在Jquery中附加后渲染实时时钟
- 用javascript制作实时时钟
- django和sql的实时倒计时时钟
- 获取与系统时钟分离的实时
- 带有JavaScript代码的PHP,实时时钟
- 实时倒计时时钟
- Javascript函数执行实时时钟新分钟