计算规则都在下方了,只需要传入创建的时间戳就可以返回想要的内容,不解释了哈,大家自己看代码,不复杂:
///评价时间规则,11位的时间戳传入
String getCommentTime(int createAt) {
///获取当前时间的时间戳 ~/ 是整除取整数的意思,不加~,除出来是double类型的,带小数点
var cTimestamp = DateTime.now().millisecondsSinceEpoch;
var allStamp = cTimestamp - createAt;
int day = (cTimestamp - createAt) ~/ (1000 * 60 * 60 * 24);
int hour = (cTimestamp - createAt) % (1000 * 60 * 60 * 24) ~/ (1000 * 60 * 60);
int minute = (cTimestamp - createAt) % (1000 * 60 * 60 * 24) % (1000 * 60 * 60) ~/ (1000 * 60);
int second = (cTimestamp - createAt) % (1000 * 60 * 60 * 24) % (1000 * 60 * 60) % (1000 * 60) ~/ 1000;
if (day == 0 && hour == 0 && minute == 0 && second < 60) {
return '刚刚';
} else if (day == 0 && hour == 0 && minute < 60) {
///也可以不用toString的,习惯操作,安全点,看个人哈
return '${minute.toString()}分钟前';
} else if (day == 0 && hour < 24 && hour > 0) {
return '${hour.toString()}小时前';
} else if (day > 0 && day < 7) {
return '${day.toString()}天前';
} else {
DateTime date = DateTime.fromMillisecondsSinceEpoch(createAt);
return date.toLocal().toString().substring(0, 19);
}
}
觉得有用,就给个👍吧!