26 lines
654 B
Dart
26 lines
654 B
Dart
import 'package:intl/intl.dart';
|
|
|
|
String formatChatTime(DateTime time) {
|
|
final now = DateTime.now();
|
|
final t = time.toLocal();
|
|
|
|
final today = DateTime(now.year, now.month, now.day);
|
|
final d = DateTime(t.year, t.month, t.day);
|
|
|
|
final diff = today.difference(d).inDays;
|
|
final hm = DateFormat('HH:mm').format(t);
|
|
|
|
if (diff == 0) return hm;
|
|
if (diff == 1) return '昨天 $hm';
|
|
|
|
// 本周
|
|
if (diff < 7 && d.weekday <= now.weekday) {
|
|
return '${DateFormat('EEEEE', 'zh_CN').format(t)} $hm';
|
|
}
|
|
|
|
if (t.year == now.year) {
|
|
return DateFormat('M月d日 HH:mm').format(t);
|
|
}
|
|
|
|
return DateFormat('yyyy年M月d日 HH:mm').format(t);
|
|
} |