【问题标题】:How can we create a Angular 5/6/7 Anti-clock Countdown (Milliseconds)?我们如何创建 Angular 5/6/7 反时钟倒计时(毫秒)?
【发布时间】:2018-12-22 09:48:14
【问题描述】:

我们如何使用 Angular 5/6/7 创建一个 AntiClock 明智的倒计时。

外汇。 (以毫秒为单位的倒计时60.000(60 秒)....逆时针移动 前。 (42.526 以毫秒为单位)。

下面的代码以 1 秒刷新间隔给出输出,我们的代码需要以毫秒为单位的间隔,如上面的示例。

谢谢

private _trialEndsAt;
private _diff: number;
private _days: number;
private _hours: number;
private _minutes: number;
private _seconds: number;
private _milliseconds: number;

ngOnInit() {
    this._trialEndsAt = "2018-12-28";
    Observable.interval(10).map((x) => {
        this._diff = Date.parse(this._trialEndsAt) - Date.parse(new Date().toString());
    }).subscribe((x) => {
        this._days = this.getDays(this._diff);
        this._hours = this.getHours(this._diff);
        this._minutes = this.getMinutes(this._diff);
        this._seconds = this.getSeconds(this._diff);
        this._milliseconds = this.getMilliseconds(60000);
    });
}

getDays(t){
    return Math.floor( t/(1000*60*60*24) );
}

getHours(t){
    return Math.floor( (t/(1000*60*60)) % 24 );
}

getMinutes(t){
    return Math.floor( (t/1000/60) % 60 );
}

getSeconds(t){
    return Math.floor( (t/1000) % 60 );
}

getMiliseconds(t){
    return Math.floor( (t) % 1000 );
}

【问题讨论】:

  • 您发布的代码到底有什么问题?
  • 实际上这个倒计时有效,从 60 -> 0 从一秒间隔减少。我们的要求是以毫秒为单位从 60.000 -> 41.856 -> 0.000 ...

标签: angular typescript momentjs


【解决方案1】:

将间隔更改为小于 1000 的值。

Observable.interval(x).map(

你需要用 0 到 1000 之间的值替换 x。这个值是刷新间隔。

并在毫秒内放置函数

getMiliseconds(t){
   return Math.floor( (t) % 1000 );
}

请查看:https://stackblitz.com/edit/angular-78vx6q

【讨论】:

  • 我们需要更改哪个值,我创建了一个名为 _milliseconds 的新变量,并与其他变量类似地应用,它只显示,0 没有动作。
  • 试试Observable.interval(10)
  • 请查看已编辑的问题,我已根据您的回答进行了更改。但结果仍然显示 0
  • this._milliseconds = this.getMilliseconds(this._diff);
  • still '0' 打印没有动作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多