如果发生警报,​​则每小时仅显示一次警报

时间:2019-06-30 14:06:18

标签: angular typescript

我不知道哪里出了问题,但是这对我来说很难实施。基本上,由于任何原因都可能发生错误,但我只想每15分钟提醒一次该消息。所以例如如果发生在上午7:02,我将显示警报。如果有错误,则在7:10 AM不会显示。但是,如果它在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是必需的,但是即使没有它,它也仍然会显示错误,无论它何时发生以及何时最后一次显示。

1 个答案:

答案 0 :(得分:0)

尝试一下:

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条件更改为60。