formatTimeDifference function
Implementation
String formatTimeDifference({required String timeStr}) {
// Parse the input time string
DateTime inputTime = DateTime.parse(timeStr).toUtc();
// Get the current time
DateTime currentTime = DateTime.now().toUtc();
// Calculate the time difference
Duration difference = currentTime.difference(inputTime);
// Calculate the difference in various time intervals
int secondsDifference = difference.inSeconds;
int minutesDifference = difference.inMinutes;
int hoursDifference = difference.inHours;
int daysDifference = difference.inDays;
int weeksDifference = (daysDifference / 7).floor();
int monthsDifference = (daysDifference / 30).floor();
int yearsDifference = (daysDifference / 365).floor();
// Generate the output string based on the time difference
if (yearsDifference > 0) {
return "$yearsDifference year${yearsDifference == 1 ? '' : 's'} ago";
} else if (monthsDifference > 0) {
return "$monthsDifference month${monthsDifference == 1 ? '' : 's'} ago";
} else if (weeksDifference > 0) {
return "$weeksDifference week${weeksDifference == 1 ? '' : 's'} ago";
} else if (daysDifference > 0) {
return "$daysDifference day${daysDifference == 1 ? '' : 's'} ago";
} else if (hoursDifference > 0) {
return "$hoursDifference hour${hoursDifference == 1 ? '' : 's'} ago";
} else if (minutesDifference > 0) {
return "$minutesDifference minute${minutesDifference == 1 ? '' : 's'} ago";
} else {
return "$secondsDifference second${secondsDifference == 1 ? '' : 's'} ago";
}
}