time_formatter 1.0.0+5

Dart native js
Flutter Android iOS web

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.

28
likes
90
pub points
90%
popularity

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

Homepage
Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

Uploader

gendronjeremi@gmail.com

License

GPL 2.0 (LICENSE)

More

Packages that depend on time_formatter