get-time-ago
get-time-ago copied to clipboard
A Dart package that converts and formats `DateTime` objects into human-readable 'time ago' strings, such as '20 seconds ago', 'a minute ago', or '7 hours ago'.
get_time_ago
A Flutter package to convert and format DateTime
object into get_time_ago
format to get
String like 10 seconds ago
, a minute ago
, 7 hours ago
, etc.
Table of Contents
-
get_time_ago
- Table of Contents
- Demo
- Installation
-
Usage
-
Formatting String as
get_time_ago
- Setting default locale
- Setting Custom Locale & Messages
-
Formatting String as
- Contributors
- Contributing
- License
- Sponsor Me
- Connect With Me
- Activities
Demo
Installation
Add get_time_ago
as a dependency in your pubspec.yaml file.
dependencies:
get_time_ago: ^latest_version
Usage
Format any DateTime
object into get_time_ago
format by following steps:
// Import the plugin
import 'package:get_time_ago/get_time_ago.dart';
// Pass DateTime object as argument in the method
var _dateTime = DateTime.now().subtract(const Duration(minutes: 10)); // [DateTime] object
print(GetTimeAgo.parse(_dateTime)); // 10 minutes ago
// Formatting with locale
print(GetTimeAgo.parse(_dateTime, locale:'es')); // hace 10 minutos
Formatting String as get_time_ago
If you have saved a DateTime
object as a String into a variable, database or cloud, then you have
to first convert the String into DateTime
object and then pass it as argument in parse
method
of get_time_ago
plugin to format it into get_time_ago
format by following steps:
// Import the plugin
import 'package:get_time_ago/get_time_ago.dart';
var _timestamp = '2021-05-10 05:21:37.712498'; // [DateTime] formatted as String.
var _convertedTimestamp = DateTime.parse(_timestamp); // Converting into [DateTime] object
var result = GetTimeAgo.parse(_convertedTimestamp);
print(result);
Setting default locale
If you want to change your default locale
, then call setDefaultLocale
method and pass
the locale
code as the argument.
// Import the plugin
import 'package:get_time_ago/get_time_ago.dart';
@override
void initState() {
super.initState();
GetTimeAgo.setDefaultLocale('fr'); // Sets the default locale to French
}
Setting Custom Locale & Messages
Implementing and Adding Custom Messages
class CustomMessages implements Messages {
@override
String prefixAgo() => '';
@override
String suffixAgo() => 'ago';
@override
String secsAgo(int seconds) => '$seconds seconds';
@override
String minAgo(int minutes) => 'a minute';
@override
String minsAgo(int minutes) => '$minutes minutes';
@override
String hourAgo(int minutes) => 'an hour';
@override
String hoursAgo(int hours) => '$hours hours';
@override
String dayAgo(int hours) => 'a day';
@override
String daysAgo(int days) => '$days days';
@override
String wordSeparator() => ' ';
}
Overriding en
Locale Messages with Custom Messages
GetTimeAgo.setCustomLocaleMessages('en', CustomMessages());
Contributors
Nikhil Rajput 💬 📖 🚧 🚇 👀 📢 |
Mejans 📖 👀 |
Muhammad Salman Bediya 📖 👀 |
fluxion8 📖 👀 |
Pascal Otto 📖 👀 |
june lee 📖 👀 |
ywake 📖 👀 |
Jiduo Zhang 📖 👀 |
silviuilas 📖 👀 |
Rexios 📖 👀 |
Minh-Danh 📖 👀 |
Ilham solehudin 📖 👀 |
WingCH 📖 👀 |
Contributing
If you would like to contribute to this project, feel free to fork the repository, make your changes, and submit a pull request. Please follow the guidelines in the CONTRIBUTING.md file.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Sponsor Me
- By sponsoring my efforts, you're not merely contributing to the development of my projects; you're investing in its growth and sustainability.
- Your support empowers me to dedicate more time and resources to improving the project's features, addressing issues, and ensuring its continued relevance in the rapidly evolving landscape of technology.
- Your sponsorship directly fuels innovation, fosters a vibrant community, and helps maintain the project's high standards of quality. Together, we can shape the future of the projects and make a lasting impact in the open-source community.
- Thank you for considering sponsoring my work!