【问题标题】:Javascript count down timer in a MYSQL columnMYSQL 列中的 Javascript 倒计时计时器
【发布时间】:2011-12-17 15:27:29
【问题描述】:

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

我该怎么做?我从这个站点http://keith-wood.name/countdown.html 引用了 Javascript 计时器,但是我不知道如何让它倒计时到结束时间列,并在表格的行中回显 Javscript 计时器。

【问题讨论】:

    标签: php javascript mysql countdown


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

      我认为您正在混淆服务器端和客户端,尽管我不完全确定您要做什么。

      您的数据库中不需要任何计时器,您只需要结束时间。然后在您的 php 脚本中,您可以获取当前时间(或在 MySQL 中...)和结束时间,并使用两者之间的差异初始化您的 javascript 计时器,以便计时器可以在访问者的浏览器中倒计时。

      【讨论】:

      • 我的问题是我想放置计时器的表是由 MySQL 生成的。顺便说一句,我想要一个实时倒计时计时器,它能够每秒钟倒计时并同时显示给用户。我在获取时差方面没有问题,但我不确定如何初始化表中的 Javascript 计时器。
      【解决方案3】:

      仅供参考,您可以在客户端上纯粹用 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

      有关 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)});
      

      如果这些例子都没有任何意义,请告诉我。

      【讨论】:

      • 如何从Mysql表中调用Javascript函数?我将while循环与mysql_fetch_array一起使用。使用 $row[column] 填充行
      • 我想要一个专门用于倒计时的专栏。
      • jQuery 倒计时插件要求您拥有一个有效的 JavaScript 日期对象。为了得到这个,你需要从 mysql 中提取一个 mysql 日期或时间戳对象并将其插入到 javascript 可以读取它的网页中。 $endTimeFromDb; 在我的例子中就是我所说的。您使用该对象创建一个新的 JavaScript 日期并将其发送到您的插件。同样,这可以是字符串或时间戳,尽管时间戳可能更容易。 您可能不想将计时器存储在数据库中,只是结束时间祝您好运!
      • 我尝试使用 var endTime = = $row[end_time]; ?>;但它不工作。未显示任何结果。
      • 这是在某处的网址上吗?它在
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多