/time_formatter

Format timestamps like YouTube in Dart

Primary LanguageDartGNU General Public License v2.0GPL-2.0

Time Formatter in Dart

This library takes UNIX (milliseconds) timestamps and converts them to pretty, human-readable time formats.

Using

Add the package to your pubspec.yaml

dependencies:
  time_formatter: ^1.0.0

Import the library in a .dart file

import 'package:time_formatter/time_formatter.dart';

Format an arbitrary UNIX timestamp (int type, milliseconds since epoch) with formatTime()

String formatted = formatTime(1548979724964)

Format

Here's a mini truth table for the format of the value returned by the function:

  • < 1 second : "Just now"
  • < 60 seconds : "X seconds" (2-59)
  • < 2 minutes : "1 minute"
  • < 60 minutes : "X minutes" (2-59)
  • < 2 hours : "1 hour"
  • < 24 hours : "X hours" (2-23)
  • < 2 days : "1 day"
  • < 7 days : "X days" (2-6)
  • < 2 weeks : "1 week"
  • < 28 days : "X weeks" (2-3)
  • < 30.44 * 1.5 days : "1 month"
  • < 365 - 15.22 days : "X months" (2-12)
  • < 730 days : "1 year"
  • Rest : "X years"

I decided to use truncate() for everything except months, as they can yield scenarios where something was stamped 59 days ago, but it still returns "1 month" (for example). Monthly timestamps are rounded to the nearest month.

Contributing

If you spot a bug or would like to provide additional functionality, you are more than welcome to submit an issue or pull request.

License

GPL 2.0, as per recommendation.