用PHP倒计时javascript

时间:2016-12-18 12:03:32

标签: javascript php countdown

我希望我的网站倒计时,以php的值(从MySQL数据库开始)开始。

目前我使用以下功能:

<script type="text/javascript">
  var seconds;
  var temp;
  var tijd = <? echo json_encode($t); ?>
 
  function countdown() {
    seconds = document.getElementById('countdown').innerHTML;
    seconds = parseInt(seconds, tijd);
 
    if (seconds == 1) {
      temp = document.getElementById('countdown');
      temp.innerHTML = "0";
      return;
    }
 
    seconds--;
    temp = document.getElementById('countdown');
    temp.innerHTML = seconds;
    timeoutMyOswego = setTimeout(countdown, 1000);
  } 
 
  countdown();
</script>

但是如果$ t不是10,则值会随着奇怪的步骤而增加。我怎么解决这个问题?我没有使用javascript的经验,所以这就是问题所在。

除此之外,当我添加此脚本时,以下代码:

header('Content-Type: text/html; charset=iso-8859-1');

不再起作用,因为例如“ë”用?表示?在文中。我不知道为什么会这样?

谁能帮帮我?提前致谢。

2 个答案:

答案 0 :(得分:1)

如果你想要一个人类可读的计数器,你必须在parseInt函数的第二个参数中使用10

  

“为人类常用的十进制数字系统指定10。”

然后,您要从数据库中检索的唯一数字是计数器的开头。

我认为您的HTML代码中有这样的内容:

<div id="countdown"><?php echo $startCounterFromDB; //This is the start of the counter ?></div>

如果你想保留你的代码,你只需要在JavaScript中更改parseInt函数的第二个参数。

<script type="text/javascript">
  var seconds;
  var temp;
  var tijd = 10; //always use 10

  function countdown() {
    seconds = document.getElementById('countdown').innerHTML;
    seconds = parseInt(seconds, tijd);

    if (seconds == 1) {
      temp = document.getElementById('countdown');
      temp.innerHTML = "0";
      return;
    }

    seconds--;
    temp = document.getElementById('countdown');
    temp.innerHTML = seconds;
    timeoutMyOswego = setTimeout(countdown, 1000);
  } 

  countdown();
</script>

最后,UTF-8是所有文件的PSR标准,但您不需要使用json_encode函数,因为您只需要打印一个数字。

此代码可以使用。

答案 1 :(得分:0)

有什么关于PREMADE的美丽jquery countdown