formatDurationTime method

String formatDurationTime()

Implementation

String formatDurationTime() {
  DateTime now = DateTime.now();
  Duration duration = now.difference(this);

  // Check if the duration is less than an hour
  if (duration.inMinutes < 60) {
    return '${duration.inMinutes} phút trước';
  }

  // Check if the duration is less than a day (i.e., use hours)
  if (duration.inHours < 24) {
    return '${duration.inHours} giờ trước';
  }

  // Check if the started time was yesterday
  DateTime yesterday = now.subtract(const Duration(days: 1));
  if (year == yesterday.year &&
      month == yesterday.month &&
      day == yesterday.day) {
    return 'Hôm qua lúc ${_formatTimeOfDay(this)}';
  }

  // Default: Return the exact date and time if it's more than a day ago
  return '${_formatDate(this)} at ${_formatTimeOfDay(this)}';
}