2011-12-17 61 views
0

我有一个MYSQL表,我想为表中的每个结果放置一个倒计时列。计时器应该从当前时间到列结束时间(在同一个表格中的一列,以DATETIME格式)计数JavaScript倒计时器在MYSQL列

我该怎么做?我指的是从这个网站的http://keith-wood.name/countdown.html的Javascript计时器,但我不知道如何使其倒计时到结束时间列,并回显表中的行Javascript计时器。

回答

1

我认为你的服务器端和客户端混合起来,虽然我不能完全知道你正在尝试做的。

您不需要数据库中的任何计时器,只需要结束时间。在你的php脚本中,你可以获取当前时间(或者在MySQL中)以及结束时间,并初始化你的javascript定时器,使得定时器可以在访问者的浏览器中倒计时。

+0

我的问题是,我想放置计时器的表是由MySQL生成的。顺便说一句,我想要一个实时倒数计时器,它能够每秒倒计时并同时显示给用户。我在获取时间差异方面没有问题,但我不确定如何初始化表中的Javascript计时器。 – user1033038 2011-12-17 15:46:19

1

只是一个供参考,你可以在客户端纯粹用JavaScript编写一个计数器。如果你想以倒计时到一个储存在MySQL数据库中你仍然可以使用JavaScript和做这样的事情在你的PHP页面在未来某一特定时间:

<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

见MDN关于JavaScript的日期对象的详细信息: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

在插件让我们更小心以后你要为y欧用我想出了这个

var endTime = <?= $endTimeFromDb; ?>; // if it's a timestamp 
var endTime = "<?= $endTimeFromDb; ?>"; // if it's a string 
$("div.countdown").countdown({until: new Date(endTime)}); 

让我知道,如果没有这些例子作出任何意义。

+0

如何从Mysql表调用Javasscript函数? 我与mysql_fetch_array一起使用while循环。这些行使用$ row [column] – user1033038 2011-12-20 06:14:44

+0

来填充。我想要一个专门用于倒计时的专栏。 – user1033038 2011-12-20 06:25:42

+0

jQuery倒计时插件要求您拥有有效的JavaScript日期对象。为了得到这个,你需要从mysql中取出一个mysql日期或时间戳记对象,并将其插入一个JavaScript可以读取的网页中。 '''$ endTimeFromDb;'''是我在我的例子中调用的那个。您可以使用该对象创建一个新的JavaScript日期并将其发送到您的插件。再次,这可以是一个字符串或时间戳,但时间戳可能更容易。 **您可能不想将您的计时器存储在数据库中,只是结束时间**祝你好运! – 2011-12-20 17:16:00