Flutter中如何将倒计时秒数转换为分:秒格式?
解决Flutter Countdown组件倒计时格式问题
你的问题出在直接把总秒数放在了秒的位置,正确的做法是拆分出分钟和剩余秒数,再统一格式化为两位数字:
修改后的代码
Countdown( seconds: 300, // 5 minutes controller: _timer, interval: Duration(seconds: 1), build: (BuildContext context, double time) { int totalSeconds = time.toInt(); int minutes = totalSeconds ~/ 60; // 整数除法取分钟数 int seconds = totalSeconds % 60; // 取余得到剩余秒数 return Text( "${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}", style: const TextStyle( color: AppColors.gray9D9F9E, fontWeight: FontWeight.w500, ), ); }, onFinished: () { setState(() { _isResend = true; }); }, ),
关键说明
- 用
~/做整数除法,直接得到准确的分钟数,避免浮点运算的精度问题 - 用
%取余计算剩余秒数,这才是需要显示在秒位的数值 padLeft(2, '0')会自动给小于10的数字补前导零,确保分钟和秒数始终是两位格式(比如5变成05,0变成00)
内容的提问来源于stack exchange,提问作者newbie2210
相关产品推荐
相关产品推荐

