timeAgo function

String timeAgo({
  1. required DateTime dateTime,
  2. bool numericDates = true,
})

n시간전 등의 기능

Implementation

String timeAgo({required DateTime dateTime, bool numericDates = true}) {
  final dateNow = DateTime.now();
  final difference = dateNow.difference(dateTime);
  final isKr = (Platform.localeName == 'ko_KR');
  if (difference.inDays >= 364) {
    return (difference.inDays ~/ 364) == 1
        ? '1 ${isKr ? '년 전' : 'year ago'}'
        : '${difference.inDays ~/ 364}${isKr ? '년 전' : ' year ago'}';
  } else if (difference.inDays >= 30) {
    return (difference.inDays ~/ 30) == 1
        ? '1 ${isKr ? '개월 전' : 'month ago'}'
        : '${difference.inDays ~/ 30}${isKr ? '개월 전' : ' month ago'}';
  } else if ((difference.inDays ~/ 7) >= 1) {
    return (difference.inDays ~/ 7) == 1
        ? (numericDates)
            ? '1 ${isKr ? '주 전' : 'week ago'}'
            : isKr ? '저번 주' : 'Last week'
        : '${difference.inDays ~/ 7}${isKr ? '주 전' : ' week ago'}';
  } else if (difference.inDays >= 1) {
    return difference.inDays == 1
        ? (numericDates)
            ? '1${isKr ? '일 전' : ' day ago'}'
            : isKr ? '어제' : 'Yesterday'
        : '${difference.inDays}${isKr ? '일 전' : ' day ago'}';
  } else if (difference.inHours >= 1) {
    return difference.inHours == 1
        ? (numericDates)
            ? '1${isKr ? '시간 전' : ' hour ago'}'
            : 'An hour ago'
        : '${difference.inHours}${isKr ? '시간 전' : ' hour ago'}';
  } else if (difference.inMinutes >= 1) {
    return difference.inMinutes == 1
        ? (numericDates)
            ? isKr ? '1분 전' : '1 minute ago'
            : isKr ? '1분 전' : 'A minute ago'
        : '${difference.inMinutes}${isKr ? '분 전' : ' minutes ago'}';
  } else if (difference.inSeconds >= 5) {
    return '${difference.inSeconds}${isKr ? '초 전' : ' seconds ago'}';
  } else {
    return isKr ? '방금 전' : 'Just now';
  }
}