javascript中的自动刷新功能

时间:2017-11-12 17:13:21

标签: javascript php

我想在javascript中自动更新函数time(),我写了这段代码:

var time = null;
setInterval(function() {
      time = Date();
}, 1000);
console.log(time);

但它在console.log中显示为null。我想在变量time()

中获得自动更新的函数time

有什么问题?

2 个答案:

答案 0 :(得分:5)

让我们分解问题

  1. <?php echo time() ?>这是在服务器端生成的,无法在客户端(代码实际运行的地方)重新计算。

  2. var time = <?php echo time() ?>;此处您将重新声明(并通过此屏蔽)原始time变量。

  3. console.log(time);这是在区间函数范围之外调用的,所以它只运行一次(并且在那个时间内将打印null)。
  4. 你正在寻找这样的东西:

    setInterval(function(){
        console.log(Date())
    }, 1000);
    

    如果你想让你的变量在区间函数范围之外可以访问,你可以这样做

    var time;
    setInterval(function(){
        time = Date();
        console.log(time);
    }, 1000);
    
    // Now the 'time' variable will be accessible and will hold the latest date value 
    // For example console.log(time)
    

    当然,您可以将Date()替换为您为特定目的所需的任何日期/时间创建功能。

答案 1 :(得分:0)

您定义了新的计时器变量,但没有覆盖您的全局变量。 您的console.log也在区间范围之外,因此您可以在更改之前打印该值。

以下代码有效:

var time = null;
setInterval(function() {
  time = "test";
  console.log(time);
}, 1000);