timeAgo function
n시간전 등의 기능
Implementation
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';
}
}