time_formatter 1.0.0+5 copy "time_formatter: ^1.0.0+5" to clipboard
time_formatter: ^1.0.0+5 copied to clipboard

Format UNIX timestamps into human-readable strings in Dart; inspired by YouTube's time formatting habits.

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.

38
likes
30
pub points
74%
popularity

Publisher

unverified uploader

Format UNIX timestamps into human-readable strings in Dart; inspired by YouTube's time formatting habits.

Homepage
Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (LICENSE)

More

Packages that depend on time_formatter