formatChannelTime static method

String formatChannelTime(
  1. int? milliseconds, {
  2. DateTime? now,
  3. NexconnChatUILocalizations? l10n,
})

Implementation

static String formatChannelTime(
  int? milliseconds, {
  DateTime? now,
  NexconnChatUILocalizations? l10n,
}) {
  if (milliseconds == null || milliseconds <= 0) {
    return '';
  }
  final date = DateTime.fromMillisecondsSinceEpoch(milliseconds);
  final currentTime = now ?? DateTime.now();
  if (date.year != currentTime.year) {
    return _formatFullDate(date, l10n);
  }
  final dateOnly = DateTime(date.year, date.month, date.day);
  final nowOnly = DateTime(
    currentTime.year,
    currentTime.month,
    currentTime.day,
  );
  final differenceInDays = nowOnly.difference(dateOnly).inDays;
  if (differenceInDays == 0) {
    return '${date.hour}:${date.minute.toString().padLeft(2, '0')}';
  }
  if (differenceInDays == 1) {
    return l10n?.commonYesterday ?? '昨天';
  }
  if (differenceInDays > 1 && differenceInDays < 7) {
    return _localizedWeekday(date.weekday, l10n);
  }
  return _formatShortDate(date, l10n);
}