12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- class DateFormat {
- static const num ONE_MINUTE = 60000;
- static const num ONE_HOUR = 3600000;
- static const num ONE_DAY = 86400000;
- static const num ONE_WEEK = 604800000;
- static const String ONE_SECOND_AGO = "秒前";
- static const String ONE_MINUTE_AGO = "分钟前";
- static const String ONE_HOUR_AGO = "小时前";
- static const String ONE_DAY_AGO = "天前";
- static const String ONE_MONTH_AGO = "月前";
- static const String ONE_YEAR_AGO = "年前";
- static String formatCreateAt(String date) {
- if(date == null)
- return '';
- return format(DateTime.parse(date));
- }
- static String format(DateTime date) {
- return formatTime(date.millisecondsSinceEpoch ~/ 1000);
- }
- static String formatTime(num time) {
- num delta = DateTime.now().millisecondsSinceEpoch - time * 1000;
- if(delta<=1000){
- return "刚刚";
- }
- if (delta < 1 * ONE_MINUTE) {
- num seconds = toSeconds(delta);
- return (seconds <= 0 ? 1 : seconds).toInt().toString() + ONE_SECOND_AGO;
- }
- if (delta < 60 * ONE_MINUTE) {
- num minutes = toMinutes(delta);
- return (minutes <= 0 ? 1 : minutes).toInt().toString() + ONE_MINUTE_AGO;
- }
- if (delta < 24 * ONE_HOUR) {
- num hours = toHours(delta);
- return (hours <= 0 ? 1 : hours).toInt().toString() + ONE_HOUR_AGO;
- }
- var date = DateTime.fromMillisecondsSinceEpoch(time * 1000);
- return "${date.year}-${date.month}-${date.day}";
- // if (delta < 48 * ONE_HOUR) {
- // return "昨天";
- // }
- // if (delta < 30 * ONE_DAY) {
- // num days = toDays(delta);
- // return (days <= 0 ? 1 : days).toInt().toString() + ONE_DAY_AGO;
- // }
- // if (delta < 12 * 4 * ONE_WEEK) {
- // num months = toMonths(delta);
- // return (months <= 0 ? 1 : months).toInt().toString() + ONE_MONTH_AGO;
- // } else {
- // num years = toYears(delta);
- // return (years <= 0 ? 1 : years).toInt().toString() + ONE_YEAR_AGO;
- // }
- }
- static num toSeconds(num date) {
- return date / 1000;
- }
- static num toMinutes(num date) {
- return toSeconds(date) / 60;
- }
- static num toHours(num date) {
- return toMinutes(date) / 60;
- }
- static num toDays(num date) {
- return toHours(date) / 24;
- }
- static num toMonths(num date) {
- return toDays(date) / 30;
- }
- static num toYears(num date) {
- return toMonths(date) / 365;
- }
- }
|