PHP生成日期->Javascript倒计时


PHP Generated date -> Javascript countdown

我正在为我的一个信息学项目制作一个网站。为此,我想创建:

  1. php脚本输出一个可以存储在数据库中的日期。
  2. Javascript倒计时到该日期。如果它完成了,我想显示一个超链接(简单的HTML锚)。

项目1已经完成了,但是我很难完成项目2。到目前为止,我们只学习了HTML、MySQL和PHP。所以我现在正在学习Javascript。这个网站上的所有例子都很难理解,必须有一个更简单的方法来做到这一点。我想要理解代码。

PHP(无需编辑):

function Klaar_Bouw($getal=0) {
      $nu = strtotime("now");
      $dag = floor($getal / 86400);
      $uur  = floor(($getal % 86400) / 3600);
      $min = floor(($getal % 3600) / 60);
      $sec = ($getal % 60);
      $nieuw = date('d-m-Y H:i:s', mktime(
      date('H',$nu)+$uur,
      date('i',$nu)+$min,
      date('s',$nu)+$sec,
      date('m',$nu),
      date('d',$nu)+$dag,
      date('Y',$nu))
      );
      return $nieuw;
              }
$bouwklaar = Klaar_Bouw( -! random number in seconds !-);
echo"$bouwklaar";
Javascript:

function Bouwen(BouwKlaar) {
    var bouwtijd = new Date(BouwKlaar);
    var dag = (getUTCDay(bouwtijd) - getUTCDay());
    var uur = (getUTCHours(bouwtijd) - getUTCHours());
    var min = (getUTCMinutes(bouwtijd) - getUTCMinutes());
    var sec = (getUTCSeconds(bouwtijd) - getUTCSeconds());
    return dag + ":" + uur + ":" + min + ":" + sec;
}
setInterval(function () {
    var bouw = Bouwen('2013, 05, 21, 20, 00, 00');
    document.getElementById("datum").innerHTML = bouw;
}, 500);

输出格式:dd:hh:mm:ss(倒数到0,然后输出HTML锚链接)

您误用了Date对象。试着这样使用:

function Bouwen(year, month, day, hour, minute, second) {
    var bouwtijd = new Date(year, (month - 1), day, hour, minute, second);

当然还有:

var bouw = Bouwen(2013, 5, 21, 20, 0, 0);

你的间隔不需要运行在500毫秒的频率,如果你的倒计时将刷新每一秒。所以用:window.setTimeout('targetFunction()', 1000)表示每秒。另外,它会打印相同的时间,因为你没有改变它。要改变它,你必须设置函数调用自己的间隔从秒开始递减1。但是在调用interval之前,您必须比较当前(倒计时)日期是否等于另一个(您未在文本中指定的)日期,以停止它并显示您的超链接。

好运。

看一下这个jsFiddle。几个问题:

  • 您使用new Date功能不正确。这个函数接收几个整数输入,而不是格式化的字符串。
  • 注意天、分钟、小时和秒是如何计算的。您应该先减去日期,然后从getUTC函数检索结果。