smartDateFormat function

String? smartDateFormat(
  1. DateTime? dateTime, {
  2. bool? formatTime,
  3. bool useToday = true,
})

Implementation

String? smartDateFormat(DateTime? dateTime,
    {bool? formatTime, bool useToday = true}) {
  if (dateTime == null) return null;

  formatTime ??= hasTime(dateTime);
  TZDateTime tzToFormat = tzDateTime(dateTime);
  if (!formatTime) {
    final now = TZDateTime.now(tzToFormat.location);
    final date = tzToFormat;
    if (now.day == date.day && useToday == true) {
      // Same day
      return "today";
    } else if (now.year == date.year) {
      return dateFormatNoYear.format(date);
    } else {
      return dateFormatWithYear.format(date);
    }
  } else {
    return smartDateTimeFormat(tzToFormat);
  }
}