formatStringDateTime method

String formatStringDateTime({
  1. required String pattern,
  2. String format = 'd MMMM, yyyy',
  3. String locale = 'fr',
})

Implementation

String formatStringDateTime({required String pattern, String format= 'd MMMM, yyyy', String locale= 'fr'}){
  DateTime dateTimeFromString = DateFormat(pattern).parse(this);
  int seconds = dateTimeFromString.difference(DateTime.now()).inSeconds;
  int hours = dateTimeFromString.difference(DateTime.now()).inHours;
  if (seconds < 60) {
    return '$seconds ${locale.contains('fr')? 'secondes' : 'second'}';
  } else if (seconds >= 60 && seconds < 3600) {
    return '${DateTime.now().difference(dateTimeFromString).inMinutes.abs()} minutes';
  } else if (hours >= 1 && hours < 2) {
    return '${DateTime.now().difference(dateTimeFromString).inHours.abs()} ${locale.contains('fr')? 'hour' : 'heure'}';
  } else if (hours >= 2 && hours < 12) {
    return DateFormat('HH:mm','fr').format(dateTimeFromString);
  } else {
    return DateFormat(format, locale).format(dateTimeFromString);
  }
}