angular - 根据一天中的时间渲染动态文本 - Angular 7

标签 angular typescript

我想根据一天中的时间在模板中显示不同的消息。在这个特定的应用程序中,我想指示美国证券交易所的盘前、公开市场和售后市场。

目前,我正在显示当前时间。

这是我在模板中使用的内容。

<div class="score clock">
     <span class="score-title">Current Time</span>
     <span class="score-stat time">{{ time | date: 'hh:mm:ss' }}</span>
     <span class="score-stat-post">{{ time | date: 'M.d.yy' }}</span>
</div>

这是我的组件文件中的内容。

export class ScoreCardsComponent implements OnInit{
  score$: Observable<any[]>;
  time = new Date();

  constructor(private updatesService: LiveUpdatesService) {
    this.score$ = this.updatesService.getScore();
  }

  ngOnInit() {
      setInterval(() => {
        this.time = new Date();
      }, 1000);
  }

}

我想让 .score-title 元素是动态的。例如,上午 9-9:30 将显示“售前”,上午 9:30-下午 4:00 将显示“开放”,下午 4:00-6:00 将显示“售后”,剩余时间将显示“关闭”。

我对 Angular 非常陌生,因此任何有关这方面的指导都会很有帮助!

最佳答案

这种方法怎么样?如果确实必须实时发生,请使用该函数在间隔中设置一个字符串。

getStatus() {
    const hour = new Date().getHours();
    const minutes = new Date().getMinutes();
    const total = hour * 60 + minutes;

    if (hour >= 9 && total < (9 * 60 + 30)) {
        return 'Premarket';
    } else if (total >= (9 * 60 + 30) && hour < 16) {
        return 'Open';
    } else if (hour >= 16 && hour < 18) {
        return 'Aftermarket';
    } else {
        return 'Closed';
    }
}

关于angular - 根据一天中的时间渲染动态文本 - Angular 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58767495/

相关文章:

typescript - 如何在服务中注入(inject)Document?

angular - karma 单元测试 : ERROR in Cannot read property 'length' of undefined

javascript - 传单 - 导入 Geojson - Angular 6

json - Angular 2 : Error Property 'map' does not exist on type 'Observable<Object>' .ts(2339)

typescript - TS中两种对象类型的深度交集类型

typescript - 如何在 ASP.NET 5 中添加 TypeScript 明确类型定义?

angular - 在 Handsontable Cells 中渲染 Angular 组件

javascript - Angular 9 :core. js:6228 错误类型错误:无法读取未定义的属性 'name'

javascript - 添加到 ngrx 存储时 rxjs 无限循环

javascript - react : How to mock Auth0 for testing with Jest