时间段

一个新 Flutter 包,可帮助使用给定的时间间隔或日期时间列表创建时间段,并获取一天中某个时间段的名称,该包支持阿拉伯语 (ar) 和英语 (en) 的本地化。

Pub Version

演示 GIF

image

安装

  1. 将此添加到您的包的 pubspec.yaml 文件中

dependencies:
  time_slot: any
  1. 使用 IDE 的 GUI 或通过命令行获取包
$ pub get
  1. 在您的应用程序中导入 time_slot.dart 文件
import 'package:time_slot/time_slot.dart';

特点

  • 使用给定时间间隔创建时间段
  • 使用给定的日期时间列表创建时间段
  • 获取时间段的名称

用法

DayPartController image

  DayPartController dayPartController = DayPartController();

获取时间的日部分

  DayParts dayPart = dayPartController.getDayPartOfTime(
    time: DateTime(2023, 1, 1, 10, 30),
  ); ///  DayParts.morning

从 DayParts 获取日部分名称

  DayParts dayPart = dayPartController.getDayPartName(dayPart: dayPart),); 
  /// morning

TimesSlotGridViewFromInterval

从区间(上午10点到晚上10点)每小时构建时间段网格视图

image

            TimesSlotGridViewFromInterval(
                locale: "en",
                initTime: selectTime,
                crossAxisCount: 4,
                timeSlotInterval: const TimeSlotInterval(
                  start: TimeOfDay(hour: 10, minute: 00),
                  end: TimeOfDay(hour: 22, minute: 0),
                  interval: Duration(hours: 1, minutes: 0),
                ),
                onChange: (value) {
                  setState(() {
                    selectTime = value;
                  });
                },
              ),

locale = “ar”,

                TimesSlotGridViewFromInterval(
                locale: "ar",
                initTime: selectTime,
                crossAxisCount: 4,
                timeSlotInterval: const TimeSlotInterval(
                  start: TimeOfDay(hour: 10, minute: 00),
                  end: TimeOfDay(hour: 22, minute: 0),
                  interval: Duration(hours: 1, minutes: 0),
                ),
                onChange: (value) {
                  setState(() {
                    selectTime = value;
                  });
                },
              ),

TimesSlotGridViewFromList

从日期列表构建时间段网格视图。

image

            TimesSlotGridViewFromList(
                locale: "en",
                initTime: selectTime,
                crossAxisCount: 4,
                listDates: [
                  DateTime(2023, 1, 1, 10, 30),
                  DateTime(2023, 1, 1, 11, 30),
                  DateTime(2023, 1, 1, 12, 30),
                  DateTime(2023, 1, 1, 13, 30),
                  DateTime(2023, 1, 1, 14, 30),
                  DateTime(2023, 1, 1, 15, 30)
                ],
                onChange: (value) {
                  setState(() {
                    selectTime = value;
                  });
                },
              ),

locale = “ar”,

                TimesSlotGridViewFromList(
                locale: "ar",
                initTime: selectTime,
                crossAxisCount: 4,
                listDates: [
                  DateTime(2023, 1, 1, 10, 30),
                  DateTime(2023, 1, 1, 11, 30),
                  DateTime(2023, 1, 1, 12, 30),
                  DateTime(2023, 1, 1, 13, 30),
                  DateTime(2023, 1, 1, 14, 30),
                  DateTime(2023, 1, 1, 15, 30)
                ],
                onChange: (value) {
                  setState(() {
                    selectTime = value;
                  });
                },
              ),

贡献

欢迎任何形式的贡献!随意 Fork 并以任何您想要的方式改进 international_phone_input,进行拉取请求或打开问题。

GitHub

查看 Github