1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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 formatCreateAtHHmm(String date) {
- if(date == null)
- return '';
- var time =DateTime.parse(date);
- return "${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}";
- }
- 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;
- }
- }
|