【问题标题】:After 30 seconds from the current time, display a notification that 30 seconds have passed从当前时间起 30 秒后,显示已过 30 秒的通知
【发布时间】:2019-10-13 13:46:50
【问题描述】:

我需要做一个页面,有时间,每5秒改变一次时间,30秒后我需要显示30秒过去的通知

function showClock(){
		var d=new Date();
		var hours=d.getHours();
		var minutes=d.getMinutes();
		var seconds=d.getSeconds();
		var clock=document.getElementById("clock");
		clock.innerHTML=`<h1>${hours}:${minutes}:${seconds}</h1>`;
		
	 }
	setInterval(showClock,1000);
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<section id="main"></section>
	<section id="clock"></section>
  </body>
</html>

【问题讨论】:

  • 请先努力争取。你已经让时钟工作了,那么是什么让你无法完成其余的工作?每当您遇到任何问题时,请回来,我们可以为您提供帮助。
  • @EmielZuurbier 我需要从当前时间加上 30 秒,如果当前时间等于 30 秒后的时间,则显示通知,但我需要花时间,但怎么能如果总是设置间隔,我会接受它
  • 在存储当前时间的showClock函数外部添加一个变量。假设var now = new Date();。该日期不会改变。将nowshowClock 函数中的d 进行比较,以查看自now 以来经过了多少时间。
  • 只需使用setTimeout(function, delay),其中delay 以毫秒为单位。 MDN

标签: javascript date datetime time set


【解决方案1】:

下次试试看……

let start = (new Date()).getTime();

function showClock(){
    var d = new Date();
    var hours = d.getHours();
    var minutes = d.getMinutes();
    var seconds=d.getSeconds();
    console.log(`${hours}:${minutes}:${seconds}`);
    if(d.getTime() - start >= 1000 * 30) {
    	console.log('30 sec');
        start = d.getTime();
    }
}

setInterval(showClock, 5000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多