【发布时间】:2021-08-11 12:55:17
【问题描述】:
** 这是我的 Typescript 文件 **
import { Component, OnInit } from '@angular/core';
import { interval, Subscription } from 'rxjs';
@Component({
selector: 'app-timer-app',
templateUrl: './timer-app.component.html',
styleUrls: ['./timer-app.component.css']
})
export class TimerAppComponent implements OnInit {
model = new Date() //'2021 08 12 00:00:00'
constructor() { }
private timeinterval = interval
private subscription!: Subscription;
public dateNow = new Date();
public dDay = this.model.getTime();
milliSecondsInASecond = 1000;
hoursInADay = 24;
minutesInAnHour = 60;
SecondsInAMinute = 60;
public timeDifference: any;
public secondsToDday:any;
public minutesToDday:any;
public hoursToDday:any;
public daysToDday:any;
private getTimeDifference () {
this.timeDifference = this.dDay - new Date().getTime();
this.allocateTimeUnits(this.timeDifference);
}
private allocateTimeUnits (timeDifference: any) {
this.secondsToDday = Math.floor((timeDifference) /
(this.milliSecondsInASecond)
% this.SecondsInAMinute);
this.minutesToDday = Math.floor((timeDifference) /
(this.milliSecondsInASecond *
this.minutesInAnHour) % this.SecondsInAMinute);
this.hoursToDday = Math.floor((timeDifference) / (this.milliSecondsInASecond *
this.minutesInAnHour * this.SecondsInAMinute) % this.hoursInADay);
this.daysToDday = Math.floor((timeDifference) / (this.milliSecondsInASecond *
this.minutesInAnHour * this.SecondsInAMinute * this.hoursInADay));
}
ngOnInit() {
this.stratInterval();
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
stopInterval(){
this.subscription.unsubscribe();
}
stratInterval(){
this.subscription = this.timeinterval(1000)
.subscribe(x => { this.getTimeDifference(); });
}
}
- 当我运行应用程序时,默认情况下会加载并显示日期(当前日期),当我选择其他日期时,我无法在倒数计时器 html 文件中更改它仍然默认日期选择器的值,但我想选择从选定日期到当前日期的日期和开始倒计时 *
** 这是我的 Html 文件 **
<div class="container">
<h1 class="text-success">Date Picker App</h1>
<form class="form-inline">
<div class="form-group">
<div class="input-group">
<input class="form-control" placeholder="yyyy-mm-dd"
name="dp" [(ngModel)]="model" ngbDatepicker
#d="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary calendar"
(click)="d.toggle()" type="button"></button>
</div>
</div>
</div>
</form>
</div>
<!--Count Down Timer DIsplay -->
<div class="container mt-5">
<div class="timer" *ngIf="model">
<h2>Time Left</h2>
<span id="days"> {{daysToDday}} </span> Day(s)
<span id="hours"> {{hoursToDday}} </span>Hrs
<span id="minutes"> {{minutesToDday}} </span>Min
<span id="seconds"> {{secondsToDday}} </span>S <br>
<div class="mt-3">
<button (click)="stopInterval()" class="btn btn-danger btn-
sm">Stop</button>
<button (click)="stratInterval()" class="btn btn-info btn-sm
"id="resetbtn">Restart</button>
</div>
</div>
</div>
** 我已经尝试了许多选项和逻辑,但它不起作用请任何人都可以指导我如何实现这个**
【问题讨论】:
标签: html datepicker ng-bootstrap ngmodel angular12