搜尋套件、儲存庫與 APP 分類

套件詳情v3.7.0

timeago_flutter

用於 Flutter 的 Timeago 小工具,可建立模糊時間戳。(例如:「15 分鐘前」)

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
1.3萬
喜歡數
36
Pub 分數
150

安裝套件

flutter pub add timeago_flutter

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

一個 Flutter 套件,可顯示人類可讀的模糊時間戳,例如「15 分鐘前」或「2 天前」。它透過自動計算和格式化相對時間差,簡化日期與時間的呈現。適用於需要在動態、使用者友善的時間標籤中顯示時間的應用程式,如資訊流、訊息或日誌。該組件支援多種語言,並可在所有主要平台(包括行動、Web 和桌面)上相容。它與 Flutter 的 UI 系統無縫整合,設定簡單。

適用情境

  • 在社交媒體應用中顯示貼文時間戳
  • 在聊天介面中顯示訊息發送時間
  • 使用相對時間更新活動日誌
  • 透過可讀的時間標籤增強使用者體驗
  • 將即時資料與地區化時間格式同步

主要特色

  • 自動相對時間計算
  • 多語言支援
  • 跨平台相容性
  • 簡單小部件整合
  • 可自訂的時間格式化
  • 輕量且快速

適合對象

  • 社群媒體應用
  • 訊息與聊天應用
  • 即時儀表板
  • 內容來源
  • 使用者活動追蹤

使用建議

  • 需要為非預設區域設定手動設定語言
  • 可能需要額外設定以精確時區
  • 僅限相對時間顯示(不包含絕對日期)
  • 不適用於精確時間戳記錄
  • 依賴底層 Dart timeago 庫進行翻譯

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

timeago

timeago is a dart library that converts a date into a humanized text. Instead of showing a date 2020-12-12 18:30 with timeago you can display something like "now", "an hour ago", "~1y", etc

timeago pub package core library
timeago_flutter pub package flutter widgets

The easiest way to use this library via top-level function format(date):

import 'package:timeago/timeago.dart' as timeago;

main() {
    final fifteenAgo = DateTime.now().subtract(Duration(minutes: 15));

    print(timeago.format(fifteenAgo)); // 15 minutes ago
    print(timeago.format(fifteenAgo, locale: 'en_short')); // 15m
    print(timeago.format(fifteenAgo, locale: 'es')); // hace 15 minutos
}
IMPORTANT

timeago library ONLY includes en and es messages loaded by default.

To add more of the supported languages use timeago.setLocaleMessages(..). See locale messages.

Standard for language code

This library uses ISO 639-1 language code to identify the language. For more information see ISO 639-1.

Adding locales
timeago.setLocaleMessages('fr', timeago.FrMessages()); // Add french messages

print(timeago.format(fifteenAgo, locale: 'es')); // environ 15 minutes
Overriding locales or adding custom messages
// Override "en" locale messages with custom messages that are more precise and short
timeago.setLocaleMessages('en', MyCustomMessages());


// my_custom_messages.dart
class MyCustomMessages implements LookupMessages {
  @override String prefixAgo() => '';
  @override String prefixFromNow() => '';
  @override String suffixAgo() => '';
  @override String suffixFromNow() => '';
  @override String lessThanOneMinute(int seconds) => 'now';
  @override String aboutAMinute(int minutes) => '${minutes}m';
  @override String minutes(int minutes) => '${minutes}m';
  @override String aboutAnHour(int minutes) => '${minutes}m';
  @override String hours(int hours) => '${hours}h';
  @override String aDay(int hours) => '${hours}h';
  @override String days(int days) => '${days}d';
  @override String aboutAMonth(int days) => '${days}d';
  @override String months(int months) => '${months}mo';
  @override String aboutAYear(int year) => '${year}y';
  @override String years(int years) => '${years}y';
  @override String wordSeparator() => ' ';
}

Scope

While there are many request for adding more complex functionality I want keep this library as simple as possible to allow minimal maintenance.

The focus of this library should be

  1. Provide a single format function that transforms a date to a humanized value
  2. Give the abstractions for users to add their own languages or overriding them as they please
  3. Provide languages contributed by the community so users can add them as they need we should not add all languages by default.
  4. Library should not depend on any dependency

timeago_flutter widgets

  • Timeago
  • TimerRefresh
  • TimerRefreshWidget

Local development

  1. Install Melos (https://pub.dev/packages/melos):

dart pub global activate melos

  1. Bootstrap dependencies:

melos bootstrap

  1. Open desired package in VSCode or Webstorm

Live Demo

Here

所屬分類

依賴

依賴清單 1 項

原始碼儲存庫

使用此套件的專案