我有一个MYSQL表,我想在表中为每个结果放置一个倒计时列。计时器应从当前时间到列结束时间(同一表中的列,以DATETIME格式)计数
我该怎么做?我引用了这个网站http://keith-wood.name/countdown.html的Javascript计时器,但是我不知道如何将它倒计时到结束时间列,并且还在表格的各行中回显Javscript计时器。
答案 0 :(得分:2)
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff
您不会直接存储倒计时列。相反,你会使用timediff。
类似
select timediff(now(), end_time) from countdown_table
答案 1 :(得分:1)
我认为你混淆了服务器端和客户端,虽然我不完全确定你要做什么。
您的数据库中不需要任何计时器,只需要结束时间。在您的PHP脚本中,您可以获取当前时间(或在MySQL中)和结束时间,并使用两者之间的差异初始化您的javascript计时器,以便计时器可以在访问者的浏览器中倒计时。
答案 2 :(得分:1)
只是一个FYI,你可以在客户端上用javascript编写一个专柜。如果你想在将来的某个特定时间倒计时存储在mysql数据库中,你仍然可以在PHP页面中使用Javascript并执行类似的操作:
<script>
var endTime = <?= $endTimeFromDb; ?>; // preferably a unix timestamp in ms
var relativeTime = new Date().getTime() - endTime; // relative ms until endTime
// now apply some fancy formatting and write it to the dom
</script>
然后你可以使用像TimeSpan.js这样的东西将你的relativeTime转换为漂亮的格式: https://github.com/idottv/TimeSpan.js
有关JavaScript日期对象的更多信息,请参阅MDN: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
仔细看看你想要使用的插件后我想出了这个
var endTime = <?= $endTimeFromDb; ?>; // if it's a timestamp
var endTime = "<?= $endTimeFromDb; ?>"; // if it's a string
$("div.countdown").countdown({until: new Date(endTime)});
如果这些例子都没有任何意义,请告诉我。