fuzzy_time 0.3.7 copy "fuzzy_time: ^0.3.7" to clipboard
fuzzy_time: ^0.3.7 copied to clipboard

No dependencies,pure Dart package to convert DateTime and Duration into fuzzy time strings e.g. 'less than 5 minutes ago', 'in about 2 hours', 'just now', etc.

example/main.dart

import 'package:fuzzy_time/fuzzy_time.dart';

void main() {
  // ============================================
  // Basic Usage Examples
  // ============================================

  // Example 1: Fuzzy time from DateTime (past)
  final fiveMinutesAgo = DateTime.now().subtract(const Duration(minutes: 5));
  print(FuzzyTime.from(fiveMinutesAgo));
  // Output: "about 5 minutes ago"

  // Example 2: Fuzzy time from DateTime (future)
  final tenMinutesFromNow = DateTime.now().add(const Duration(minutes: 10));
  print(FuzzyTime.from(tenMinutesFromNow));
  // Output: "in about 10 minutes"

  // Example 3: Short form
  print(FuzzyTime.from(fiveMinutesAgo, form: FuzzyForm.short));
  // Output: "~5 min ago"

  // Example 4: Duration examples
  final duration = const Duration(hours: 2, minutes: 30);
  print(duration.fuzzy);
  // Output: "about 2 hours"

  print(duration.fuzzyShort);
  // Output: "~2 hr"

  // Example 5: Various duration formats
  print(const Duration(seconds: 30).fuzzy);
  // Output: "a few seconds"

  print(const Duration(minutes: 7).fuzzy);
  // Output: "about 5 minutes"

  print(const Duration(minutes: 8).fuzzy);
  // Output: "less than 10 minutes"

  print(const Duration(days: 3).fuzzy);
  // Output: "about 3 days"

  // ============================================
  // Localization Examples
  // ============================================

  final testDuration = const Duration(minutes: 5);
  final testTime = DateTime.now().subtract(const Duration(minutes: 5));

  // Spanish
  FuzzyTimeLocale.setLocale(FuzzyLocale.es);
  print('\n--- Spanish ---');
  print(testDuration.fuzzy); // "unos 5 minutos"
  print(FuzzyTime.from(testTime)); // "hace unos 5 minutos"

  // French
  FuzzyTimeLocale.setLocale(FuzzyLocale.fr);
  print('\n--- French ---');
  print(testDuration.fuzzy); // "environ 5 minutes"
  print(FuzzyTime.from(testTime)); // "il y a environ 5 minutes"

  // Portuguese
  FuzzyTimeLocale.setLocale(FuzzyLocale.pt);
  print('\n--- Portuguese ---');
  print(testDuration.fuzzy); // "cerca de 5 minutos"
  print(FuzzyTime.from(testTime)); // "há cerca de 5 minutos"

  // German
  FuzzyTimeLocale.setLocale(FuzzyLocale.de);
  print('\n--- German ---');
  print(testDuration.fuzzy); // "etwa 5 Minuten"
  print(FuzzyTime.from(testTime)); // "vor etwa 5 Minuten"

  // Italian
  FuzzyTimeLocale.setLocale(FuzzyLocale.it);
  print('\n--- Italian ---');
  print(testDuration.fuzzy); // "circa 5 minuti"
  print(FuzzyTime.from(testTime)); // "5 minuti fa"

  // Reset to English
  FuzzyTimeLocale.setLocale(FuzzyLocale.en);
  print('\n--- English (reset) ---');
  print(testDuration.fuzzy); // "about 5 minutes"
  print(FuzzyTime.from(testTime)); // "about 5 minutes ago"
}
4
likes
160
points
227
downloads

Publisher

verified publisherinteist.com

Weekly Downloads

No dependencies,pure Dart package to convert DateTime and Duration into fuzzy time strings e.g. 'less than 5 minutes ago', 'in about 2 hours', 'just now', etc.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

More

Packages that depend on fuzzy_time