我想在javascript中自动更新函数time(),我写了这段代码:
var time = null;
setInterval(function() {
time = Date();
}, 1000);
console.log(time);
但它在console.log中显示为null。我想在变量time()
time
有什么问题?
答案 0 :(得分:5)
让我们分解问题
<?php echo time() ?>
这是在服务器端生成的,无法在客户端(代码实际运行的地方)重新计算。
var time = <?php echo time() ?>;
此处您将重新声明(并通过此屏蔽)原始time
变量。
console.log(time);
这是在区间函数范围之外调用的,所以它只运行一次(并且在那个时间内将打印null
)。你正在寻找这样的东西:
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);