chatViewFormatTime static method

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

Implementation

static String chatViewFormatTime(
  int? milliseconds, {
  DateTime? now,
  NexconnChatUILocalizations? l10n,
}) {
  if (milliseconds == null || milliseconds <= 0) {
    return '';
  }
  final date = DateTime.fromMillisecondsSinceEpoch(milliseconds);
  final currentTime = now ?? DateTime.now();
  final minute = date.minute.toString().padLeft(2, '0');
  if (date.year != currentTime.year) {
    return '${date.year}/${date.month}/${date.day} ${date.hour}:$minute';
  }
  if (date.month != currentTime.month) {
    return '${date.month}/${date.day} ${date.hour}:$minute';
  }
  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}:$minute';
  }
  if (differenceInDays == 1) {
    final time = '${date.hour}:$minute';
    return l10n?.combineMessageTimeYesterday(time) ?? '昨天 $time';
  }
  if (differenceInDays > 1 && differenceInDays < 7) {
    return '${_localizedWeekday(date.weekday, l10n)} ${date.hour}:$minute';
  }
  return '${_formatShortDate(date, l10n)} ${date.hour}:$minute';
}