angular - 如果发生,每小时仅显示一次警报
问题描述
我不知道我哪里出错了,但我很难实施。基本上,任何原因都可能发生错误,但我只想在十五分钟内提醒该消息一次。因此,例如,如果它发生在上午 7:02,我会显示警报。如果有错误,在上午 7:10,我不显示。但是如果它在 8:02 之后显示,我会再次显示它,然后循环继续。
现在,无论我做什么,它都会提醒消息。
lastTimeErrorWasDisplayed = 0;
displayError() {
let vm : any = this;
// get the current time
const timeNow = new Date().getTime();
const hoursToWaitBeforeNextToastr = 1;
const difference = timeNow - this.lastTimeErrorWasDisplayed
var hours = (difference / (1000 * 60 * 60));
// show we show toastr now?
if (
hours > hoursToWaitBeforeNextToastr
) {
this.lastTimeErrorWasDisplayed = timeNow;
setTimeout(() => {
vm.toastr.warning(
"error",""
);
});
}
}
由于应用程序要求, setTimeOut 是必要的,但即使没有它,它仍然会显示错误,无论何时发生以及上次显示的时间。
解决方案
尝试这个:
var startTime = new Date('2019/06/30 16:00');
var timeNow = new Date();
var difference = timeNow.getTime() - startTime.getTime();
var resultInMinutes = Math.round(difference / 60000);
if (resultInMinutes >= 15) {
// your code
}
如果您想每小时检查一次,也可以将 if-condition 更改为 60。
推荐阅读
- javascript - 将 HTML 预览分为多个页面
- python - 无法以某种自定义方式排列和打印网页中的某些字段
- python - 循环包含路径的 .csv 文件并将标签添加到第二列
- neural-network - 我的 Octave 函数将所有用于和反向传播的答案返回为 0.0000 --- coursera ML 第 5 周作业
- javascript - PHP,Jquery如何显示从打开和关闭时间的范围时间
- spring-integration - 在测试中手动启动出站网关时,Dispatcher 没有 MessageGateway 频道的订阅者
- c++ - 具有更改返回类型的可变参数模板参数列表
- swift - 在 avcapture 会话和预览层之上添加 activityIndicator
- google-cloud-platform - 使用 Strongswan 在 GCP 上的站点到站点 VPN
- linux - 将 Mainflux IoT Agent 连接到 EdgeX 网关