import 'package:intl/intl.dart';
///
String formatTimeDifference(DateTime time, {String customFormat}) {
DateTime now = DateTime.now();
Duration difference = now.difference(time);
if (difference.inSeconds < 10) {
return '刚刚';
} else if (difference.inSeconds < 60) {
return '${difference.inSeconds}秒前';
} else if (difference.inMinutes < 60) {
return '${difference.inMinutes}分钟前';
} else if (difference.inHours < 24) {
return '${difference.inHours}小时前';
} else if (difference.inDays < 7) {
return '${difference.inDays}天前';
} else if (difference.inDays < 30) {
int weeks = (difference.inDays / 7).floor();
return '$weeks周前';
} else if (difference.inDays < 365) {
int months = (difference.inDays / 30).floor();
return '$months月前';
} else if (difference.inDays >= 365) {
int year = (difference.inDays / 365).floor();
return '$year年前';
} else {
// 如果传入了 customFormat,则使用传入的格式化字符串
if (customFormat != null) {
return DateFormat(customFormat).format(time);
} else {
// 否则返回默认的格式化字符串
return DateFormat('yyyy-MM-dd HH:mm:ss').format(time);
}
}
}
// void main() {
// // 示例用法
// DateTime pastTime = DateTime.now().subtract(Duration(days: 5));
// print(formatTimeDifference(pastTime)); // 输出:5天前
// DateTime customTime = DateTime.now().subtract(Duration(hours: 2));
// print(formatTimeDifference(customTime, customFormat: 'yyyy/MM/dd HH:mm')); // 输出:2023/12/27 18:30
// }