Javascript 在秒表上打两位数

Javascript 在秒表上打两位数,javascript,angular,Javascript,Angular,我正在构建一个Angular 9应用程序。在这个应用程序中,我得到了一个计时组件。这工作非常好,但我需要它是两位数 现在的输出是: 0:0:9 我需要它 00:00:09 这是处理输出的方法 timeDifference() { const currentTime = moment().valueOf(); const startTime = moment(this.form.get('starts_at').value).valueOf(); const diffe

我正在构建一个Angular 9应用程序。在这个应用程序中,我得到了一个计时组件。这工作非常好,但我需要它是两位数

现在的输出是:

0:0:9
我需要它

00:00:09
这是处理输出的方法

timeDifference() {
    const currentTime = moment().valueOf();
    const startTime = moment(this.form.get('starts_at').value).valueOf();
    const difference = currentTime - startTime;
    let hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    let minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
    let seconds = Math.floor((difference % (1000 * 60)) / 1000);
    hours = (hours < 10) ? 0 + hours : hours;
    minutes = (minutes < 10) ? 0 + minutes : minutes;
    seconds = (seconds < 10) ? 0 + seconds : seconds;
    this.pastTime = hours + ':' + minutes + ':' + seconds;
  }
时差(){
const currentTime=力矩().valueOf();
const startTime=矩(this.form.get('starts_at').value).valueOf();
常数差=当前时间-开始时间;
让小时数=数学楼层((差值%(1000*60*60*24))/(1000*60*60));
让分钟数=数学楼层((差值%(1000*60*60))/(1000*60));
设秒数=数学下限((差值%(1000*60))/1000);
小时=(小时<10)?0+小时:小时;
分钟=(分钟<10)?0+分钟:分钟;
秒=(秒<10)?0+秒:秒;
this.pastTime=hours+':'+分钟+':'+秒;
}
我能做些什么来解决这个问题


谢谢大家!

由于您正在计算字符串,因此可以直接格式化该值

this.pastTime = `${hours < 10 ? '0' : ''}${hours}:${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}:`

您的代码将零连接为字符串

让小时数=9;
分钟=6;
让秒=30;
小时数=(小时数<10)?'0'+小时:小时;
分钟=(分钟<10)?'0'+分钟:分钟;
秒=(秒<10)?'0'+秒:秒;

日志(小时+':'+分钟+':'+秒)如果你已经在使用矩,为什么要重新发明轮子?您只需使用矩的“format()”函数即可获得所需的输出。甚至可以使用本机日期对象的“toLocaleTimeString”

在此代码段中,您可以看到这两个方面都在起作用:

setInterval(()=>{
document.getElementById(“localeDiv”).innerHTML=new Date().toLocaleTimeString();
document.getElementById(“momentDiv”).innerHTML=moment().format(“HH:mm:ss”);
}, 1000);

带Date.toLocaleTimeString()
瞬间
让小时数=2;
分钟=3;
让秒=20;
函数n(n){
返回n>9?“+n:“0”+n;
}

log(n(小时)+':'+n(分钟)+':'+n(秒))我认为在连接中需要引号。比如
hours=(hours<10)?'0'+小时:小时
您可以将数字转换为字符串,并在其中添加零填充。
(7).toString().padStart(2,“00”)
@Pipe({
  name: 'doubledigit'
})
export class DoubleDigitPipe implements PipeTransform {

  transform(value: number, ...args: unknown[]): string {
    return `${value < 10 ? '0' : ''}${value}`;
  }

}
{{ hours | doubledigit }}:{{ minutes | doubledigit }}:{{ seconds | doubledigit }}