import 'dart:core'; class TimeAgo { static String _ceil(double n) => n.ceil().toString(); static String _pluralize(double time, String unit) { if (time == 1) { return '${_ceil(time)} $unit ago'; } return '${_ceil(time)} ${unit}s ago'; } static String formatFromString(String str) { return format(DateTime.parse(str)); } static String format(DateTime time) { double diff = (DateTime.now().millisecondsSinceEpoch - time.millisecondsSinceEpoch) / 1000; if (diff < 0) { return 'in the future'; } else if (diff < 3600) { return _pluralize(diff / 60, 'minute'); } else if (diff < 86400) { return _pluralize(diff / 3600, 'hour'); } else { return _pluralize(diff / 86400, 'day'); } } }