Flutter时间计算插件time_passed的使用

Flutter时间计算插件time_passed的使用

这个包允许你在应用程序中以更令人愉悦的方式展示时间。

特性

TimePassed Screenshot

开始使用

无需任何权限。

使用方法

支持9种语言:德语(de)、英语(en)、西班牙语(es)、法语(fr)、印地语(hi)、葡萄牙语(pt)、俄语(ru)、土耳其语(tr)、中文(zh)。

默认语言:设备语言。

[dateTime] 参数是必需的。它是与当前日期时间进行比较的时间日期。

[lang] 参数是可选的。默认接受设备语言。如果设置为 “en”,函数将以英文返回自给定日期时间以来经过的时间。如果设置为 “tr”,函数将以土耳其语返回自给定日期时间以来经过的时间。如果语言不在包中,则默认语言将是英文。

[passedLimit] 参数是可选的。如果设置了此参数,函数将返回自给定日期时间到给定日期时间之间的经过时间。如果 [passedLimit.full=true],它返回日期和时间。[passedLimit.full = false] 返回只有日期。

[full] 参数是可选的。如果设置为 true,函数将返回自给定日期时间以来的完整时间。如果设置为 false,函数将返回自给定日期时间以来的大约时间。默认值为 false

[shortType] 参数是可选的。如果设置为 true,函数将返回经过的时间,并且单位将以缩写形式返回。如果设置为 false,则单位将以长形式返回。

[customTexts] 参数是可选的。如果设置了此参数,函数将使用给定的自定义文本返回自给定日期时间以来经过的时间。

请查看示例文件夹。

示例函数 1:

DateTime date = DateTime.now().subtract(const Duration(days: 300, hours: 2, minutes: 30, seconds: 15));

String timePassed = getTimePassed(date); 

//10个月前

示例函数 2:

DateTime date = DateTime.now().subtract(const Duration(days: 300, hours: 2, minutes: 30, seconds: 15));

String timePassed3 = getTimePassed(date, full: true, shortType: false); 

// 10个月 2小时 30分钟 15秒前

额外信息

您可以参阅以下示例代码:

import 'package:time_passed/src/model/passed_limit_model.dart';
import 'package:time_passed/time_passed.dart';

void main() {
  DateTime date = DateTime.now()
      .subtract(const Duration(days: 300, hours: 2, minutes: 30, seconds: 15));

  String timePassed = getTimePassed(date);
  //10个月前

  String timePassed2 = getTimePassed(date, full: false, shortType: true);
  //10mo前

  String timePassed3 = getTimePassed(date, full: true, shortType: false);
  // 10个月 2小时 30分钟 15秒前

  String timePassed4 = getTimePassed(date, full: false, shortType: false);
  // 10个月前

  String timePassed5 = getTimePassed(date, full: true, shortType: true);
  // 10mo 2h 30min 15s前

  String timePassed6 = getTimePassed(date,
      passedLimit:
          PassedLimitModel(duration: const Duration(days: 250), full: true));
  // 19.04.2023 21:04

  String timePassed7 = getTimePassed(date,
      passedLimit:
          PassedLimitModel(duration: const Duration(days: 250), full: false));
  // 19.04.2023

  String timePassed8 =
      getTimePassed(date, full: true, shortType: false, lang: "tr");
  // 10个月 2小时 30分钟 15秒前

  print(timePassed);
  print(timePassed2);
  print(timePassed3);
  print(timePassed4);
  print(timePassed5);
  print(timePassed6);
  print(timePassed7);
  print(timePassed8);
}

更多关于Flutter时间计算插件time_passed的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter时间计算插件time_passed的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用time_passed插件来进行时间计算的示例代码。time_passed插件主要用于将时间戳格式化为相对时间描述(例如,“3分钟前”,“2小时前”等)。

首先,确保你已经在pubspec.yaml文件中添加了time_passed依赖:

dependencies:
  flutter:
    sdk: flutter
  time_passed: ^2.0.0  # 请检查最新版本号

然后运行flutter pub get来获取依赖。

接下来,在你的Dart文件中导入time_passed包并使用它。以下是一个完整的示例:

import 'package:flutter/material.dart';
import 'package:time_passed/time_passed.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Time Passed Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Time Passed Demo'),
        ),
        body: Center(
          child: TimePassedDemo(),
        ),
      ),
    );
  }
}

class TimePassedDemo extends StatefulWidget {
  @override
  _TimePassedDemoState createState() => _TimePassedDemoState();
}

class _TimePassedDemoState extends State<TimePassedDemo> {
  DateTime pastTime = DateTime.now().subtract(Duration(hours: 3, minutes: 30));

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text(
          'Original Time: ${pastTime.toLocal()}',
          style: TextStyle(fontSize: 20),
        ),
        SizedBox(height: 20),
        Text(
          'Time Passed: ${TimeAgo.format(pastTime)}',
          style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
        ),
      ],
    );
  }
}

在这个示例中,我们做了以下几件事:

  1. 导入time_passed包。
  2. 创建一个简单的Flutter应用,包含一个显示原始时间和相对时间的页面。
  3. 使用DateTime.now().subtract(Duration(...))生成一个过去的时间点。
  4. 使用TimeAgo.format(pastTime)将这个时间点格式化为相对时间描述。

运行这个应用,你应该会看到类似这样的输出:

Original Time: [当前时间减去3小时30分钟的具体时间]
Time Passed: 3 hours ago

这个插件非常有用,尤其是在需要显示消息、评论或其他时间戳时,可以让用户更容易理解时间的相对距离。

回到顶部