javascript - setInterval 没有工作
问题描述
试图显示日期,它只显示一次然后停止。
var txtTime = document.getElementById('time');
var date = new Date();
var formatDate = function(d) {
// Friday, July 03, 2020, 6:14:12 PM
var hour = d.getHours();
var minute = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes();
var seconds = d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds();
var date = d.getDate();
var month = d.getMonth();
var day = d.getDay();
var year = d.getFullYear();
return `${fDay(day)}, ${fMonth(month)} ${date++}, ${year}, ${fH(hour)[0]}:${minute++}:${seconds++} ${fH(hour)[1]}`;
}
function execDate() {
txtTime.innerText = formatDate(date);
}
setInterval(function() {
execDate();
}, 1000);
<h1 id="time">Waiting...</h1>
解决方案
您已经创建了一个date
始终保持相同值的变量。您每次都需要传递更新的新日期。
function execDate() {
txtTime.innerText = formatDate(new Date());
}
或者date
在函数内部定义变量
function execDate() {
var date = new Date();
txtTime.innerText = formatDate(date);
}
推荐阅读
- r - 如何基于具有应用或 purrr 函数的自定义函数获取具有多行的数据框?
- c# - 使用 Moq 模拟方法数组参数
- python-3.x - 在pandas数据框Python中以HH:MM:SS格式计算两个日期列(具有nan值)的差异
- javascript - 无法使用 v-model 捕获与输入值相同的完整地址 - Vue/Vuetify
- python - Pygame在动画期间“没有响应”
- python - 使用 CNN 模型进行人脸检测和损失函数:回归问题
- amazon-web-services - 通过 EMR (hive 2.0) 在 Hive 表中运行分析表计算统计信息时出错
- c# - 当用户单击按钮时,应用内评论未打开
- javascript - 如何根据下拉值 + 计算更新 HTML 表格?
- javascript - 使用@azure/event-hubs 发送消息总是遇到超时