@Entry
@Component
export default struct TextTimerRecord {
textTimerController: TextTimerController = new TextTimerController()
@State format: string = 'mm:ss'
build() {
Row() {
TextTimer({ controller: this.textTimerController })
.format(this.format)
.fontSize('24px')
.fontWeight(FontWeight.Bolder)
.fontColor(Color.White)
.fontFamily('HarmonyOS Sans SC')
.onTimer((utc: number, elapsedTime: number) => {
if (elapsedTime == 30) {
this.format = 'HH:mm:ss';
}
})
.onAppear(() => {
this.textTimerController.start()
})
}
}
}
上述代码想实现的功能是,当时间到达1小时后,可以出现小时数;(我不太清楚在format属性设置为mm:ss,时间到达一小时后是否会自动转换为hh:mm:ss,所以采用了上述写法来验证);上述的代码的问题是,到达指定时间(elapsedTime)后,格式会刷新,但是计时器重置为零了。想请教下怎么解决呀,或者有其他办法实现我的需求
利用setInterval自己设计一个计时器,然后将时间格式化即可,示例代码如下(可以设置从某个特定时间开始计时)