从数据库中的给定时间开始经过的时间
我有一个HTML表,其中包含从数据库中提取的记录。 我正在使用PHP / MySQL。
我的表中名为“Timer”的列未从数据库中检索。 我需要在这里显示经过的时间(从数据库中的特定时间)。 例如,假设现在的时间是2013年2月21日下午6点20分,数据库中的时间是2013年2月21日下午5点50分,我需要定时器列显示00:30:00(自从晚上5点30分起已经过了30分钟)。 它必须是一个Running计时器(不是一个可以通过使用MySQL datetime差异计算的静态计时器),所以访问该页面的人应该能够看到相同的经过时间。 当我点击另一个按钮时,我还需要停止计时器。
我在这里看到了与此问题相关的其他post,例如从Javascript计时器到数据库的经过时间,但我认为我问的是不同的。 我仍然对如何去做这件事感到困惑。 我的Javascript知识很少,如果你可以帮助我或者把我推荐到正确的地方会很棒。 谢谢!
这可以通过非常少的Javascript实现。
假设在表格中动态呈现“创建”时间格式为dd MMM yyyy hh:mm:ss
,这样的事情应该可以解决问题:
Created Timer 21 Feb 2013 12:30:00
将上面的代码复制到一个文件中,比如index.html
,然后在浏览器中打开它。 我在Chrome上测试过它。
它应该每2秒更新一次经过的时间,但您可以将更新间隔更改为适合您的时间,例如每隔5分钟更新一次:
new ElapsedTimeLogger("#date", "#elapsed", 300);
一般概念是将呈现的“创建”日期解析为纪元时间戳(以毫秒为单位),然后计算其与当前系统时间的差异。 要动态更新已用时间,请使用Javascript的setInterval
函数。 要停止更新已用时间,请使用Javascript的clearTimeout
函数。
我从powtac中取出了prettyPrintTime
函数。
如果你正在寻找一个带有sql的纯html基础解决方案来进行动态更改,那是不可能的。 如果您需要运行计时器,则需要使用JS。 (也可以在css5的帮助下完成)。
您希望使用PHP从数据库中检索时间,然后使用Javascript显示从检索时间开始计算的计时器。 您应该能够找到可以轻松完成此操作的预制Javascript脚本。 这是我发现的一个。 我不知道它是否最符合您的需求,但它是最早的结果之一。 只需剪掉不需要的部分,比如年,月等。