Timer? _timer;
var periodicTime="".obs;
initTimer({required int createTime,required int duration}) async {
_timer = Timer.periodic(const Duration(seconds: 1), (timer) async {
DateTime currentTime = DateTime.now();
var now = (currentTime.millisecondsSinceEpoch / 1000).truncate();
int difference1 = (now - createTime).toInt();
int difference2 = (duration - difference1).toInt();
int hours = difference2 ~/ 3600; // 小时数
int minutes = (difference2 % 3600) ~/ 60; // 分钟数
int seconds = difference2.toInt() % 60; // 秒数
if (difference1 >= duration) {
if (!_timer!.isActive) {
_timer?.cancel();
}
_timer?.cancel();
}
if(periodicTime.startsWith("-")){
_timer?.cancel();
}
if(hours>24){
periodicTime.value= '1天${(hours-24).toString().padLeft(
2, '0')}小时${minutes.toString().padLeft(
2, '0')}分${seconds.toString().padLeft(2, '0')}';
}else{
periodicTime.value= '${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(
2, '0')}:${seconds.toString().padLeft(2, '0')}';
}
}
);
}
标签:定时器,padLeft,int,difference2,timer,seconds,toString,flutter
From: https://www.cnblogs.com/wufong/p/18201734