最近在写一个html5小游戏,游戏中难免要用到计时的功能。我是简单的设置了一个passedTime变量,在游戏循环中没60帧++一次(FPS=60)。然后就要将passeTime转换成00:00格式的时间显示出来。虽说这种计算机时间的方法不是很准确(因为不是任何机器都能保证任何一秒内都能update 60次),不过现在的电脑效率都很高了,加上broswer的进步,除非你用古董机。
其实方法很多,这里我就简单的用了以下两个函数:
function getTimeFromSeconds(totalSeconds) { if (totalSeconds < 86400) { var dt = new Date("01/01/2000 0:00"); dt.setSeconds(totalSeconds); return formatTime(dt); } else { return null; } } function formatTime(dt) { var h = dt.getHours(), m = dt.getMinutes(), s = dt.getSeconds(), r = ""; if (h > 0) { r += (h > 9 ? h.toString() : "0" + h.toString()) + ":"; } r += (m > 9 ? m.toString() : "0" + m.toString()) + ":" r += (s > 9 ? s.toString() : "0" + s.toString()); return r; }可以像这样使用:
$("#game_passed_time").text(getTimeFromSeconds(gamePassedTime));这样就可以显示时间了,哈哈,希望这么简单的东西没浪费你很多时间。