showTime(val) {
if(val<60){
this.setState({
num:val + "秒"
})
}else{
var min_total = Math.floor(val / 60); // 分钟
var sec = Math.floor(val % 60); // 余秒
if (min_total < 60) {
this.setState({
num:min_total + "分钟" + sec + "秒"
})
}else{
var hour_total = Math.floor(min_total / 60); // 小时数
var min = Math.floor(min_total % 60); // 余分钟
this.setState({
num:hour_total + "小时" + min + "分钟" + sec + "秒"
})
}
}
}
项目中遇到的模仿微信通话时间累加,这里需要配合setInterval使用(以下为react Native项目中代码)
timeAdd(s) {
var i = 0
var timer = setInterval(() => {
i++
this.showTime(i)
}, 1000);
this.setState({
carTimer:timer
})
}
showTime(val) {
if(val<60){
this.setState({
num:val + "秒"
})
}else{
var min_total = Math.floor(val / 60); // 分钟
var sec = Math.floor(val % 60); // 余秒
if (min_total < 60) {
this.setState({
num:min_total + "分钟" + sec + "秒"
})
}else{
var hour_total = Math.floor(min_total / 60); // 小时数
var min = Math.floor(min_total % 60); // 余分钟
this.setState({
num:hour_total + "小时" + min + "分钟" + sec + "秒"
})
}
}
}