You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:10:24