Dart 中的日期倒计时

2023-12-11

我正在尝试为我的特定日期创建一个倒计时,并显示在那之前还剩多少小时、分钟和秒..

例如我想将计数器日期设置为:2018 年 10 月 25 日星期四上午 7:14:05

我想向用户显示.. 剩余时间: hh:mm:ss 直到 10 月 25 日 ...

我试过这个:

@override
void initState() {

new CountdownTimer(new Duration(milliseconds: 1540451645), new Duration(seconds: 1)).listen((data) {
  print('Remaining time: ${data.remaining.inSeconds}');
  print(new DateTime.now().millisecondsSinceEpoch);
  print(DateTime.fromMillisecondsSinceEpoch(data.remaining.inSeconds));
  var format = new DateFormat("hh:mm:ss");
  var dateString = format.format(DateTime.fromMillisecondsSinceEpoch(data.remaining.inSeconds));
  print(dateString);
});
super.initState();
}

但结果是:03:25:40..这确实不正确...

这个怎么做?


首先 - 有错误:你必须使用data.remaining.inMilliseconds代替data.remaining.inSeconds

对于格式化,最好使用 Duration 而不是 DateTime。但您可以更改现有代码,例如:

var format = new DateFormat("mm:ss");
var dateString = '${data.remaining.inHours}:${format.format(DateTime.fromMillisecondsSinceEpoch(data.remaining.inMilliseconds))};
print(dateString);

UPD显示剩余时间的小部件

int estimateTs = DateTime(2018, 11, 5, 7, 15, 30).millisecondsSinceEpoch; // set needed date

....

StreamBuilder(
                      stream: Stream.periodic(Duration(seconds: 1), (i) => i),
                      builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
                        DateFormat format = DateFormat("mm:ss");
                        int now = DateTime
                            .now()
                            .millisecondsSinceEpoch;
                        Duration remaining = Duration(milliseconds: estimateTs - now);
                        var dateString = '${remaining.inHours}:${format.format(
                            DateTime.fromMillisecondsSinceEpoch(remaining.inMilliseconds))}';
                        print(dateString);
                        return Container(color: Colors.greenAccent.withOpacity(0.3),
                          alignment: Alignment.center,
                          child: Text(dateString),);
                      });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dart 中的日期倒计时 的相关文章

随机推荐

  • 处理播放中动态创建的文件 2

    我编写了一个小应用程序 可以使用 play 2 0 创建可下载的 pdf 文件 我想为公众服务 在我的开发环境中 我创建了一个文件夹 assets 文件夹 一切都很好 现在 当切换到生产环境时 我发现 play 总是在我背后部署这些文件 我
  • MySQL 上 Django 中的列数据太长

    对于模型中声明为的列 我收到此错误TextField数据库中是一个 LONGTEXT 而我尝试插入的值只有 3KB 长 AFAIK LONGTEXT 理论限制是 2GB 所以我不知道为什么有这个限制或如何绕过它 有任何想法吗 我得到的具体异
  • ngx-capture :无法捕获屏幕捕获区域内的

    我无法捕捉 img 在屏幕捕获区域内 我想要一个定义的部分 其中包含要捕获的图像和内容 我们怎样才能做到这一点 帮助 Visit https stackblitz com edit ngx capture div angular wnkjw
  • 如何存储自定义对象数组(目标)

    如何存储在 NSUserDefaults 中创建的 Goal 类型的对象数组 快速 这是代码 func saveGoalList newGoalList Goal let updatedGoalList newGoalList NSUser
  • 在 Xcode 中打开非 Xcode 项目

    现在我正在开发一个使用 Markdown 的静态网站 我不想在 SublimeText 中编辑文件 而是想在 Xcode 中编辑它们 我可以在 Xcode 中打开各个文件 但我想打开整个静态站点目录并受益于使用文件导航器窗格和其他 Xcod
  • PHP:通过 ID 将 html 内容附加(添加)到现有元素

    我需要使用 PHP 按 ID 搜索元素 然后向其附加 html 内容 这看起来很简单 但我是 php 新手 找不到合适的函数来执行此操作 html file get contents http example com doc new DOM
  • Matlab中不同大小的矩阵数组

    是否可以在 Matlab 中创建具有不同大小的矩阵数组 例如 Array Mat 1 zeros 3 Array Mat 2 zeros 4 这会产生错误 那么我怎样才能制作矩阵数组呢 您可以使用细胞 gt gt a 1 1 2 3 4 a
  • Firebase数据库持久存储[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 只是想知道是否Firebase 持久性存储当它缓存到设备上的磁盘时会被加密 我们希望在特定路径上利用 Firebase 同步来向用户推送更快的更新 当您执行以下操作时 Firebase
  • Angular2 *ngFor:“无法读取未定义的属性‘0’”

    我尝试从 JSON 文件获取数据来构建表单 这是我的模板的一部分 div class form group div
  • std::vector 可以利用小缓冲区优化吗?

    今天我和同事想知道是否可以实现 std vector 来利用小缓冲区优化 通过查看 C 11 草案 我在 23 3 1p8 读到 对于除数组之外的标准容器类型的容器 a 和 b 表达式 a swap b 应交换 a 和 b 的值 而不对各个
  • 从 Rust 中的 RefCell>> 获取引用

    我在从 RefCell gt 获取引用时遇到问题 有什么建议吗 struct Node
  • 为什么 var foo = null 编译

    我从 Kotlin 开始并试图理解一些东西 var foo String null未按预期编译 var foo String null应该是正确的语法并按预期进行编译 那么为什么var foo null编译 的类型foo在这种情况下将被推断
  • C++ 中空结构的用法

    在我正在阅读的一些代码中 我发现空结构的用法如下 struct input iterator tag struct bidirectional iterator tag struct random access iterator tag 所
  • 使用 AHK 关闭 Visual Studio 中的弹出对话框

    我重新映射了几个键 效果很好 然而 我在尝试摆脱视觉工作室中的弹出对话框时遇到了困难 这是我尝试过的 WinWaitActive Microsoft Visual Studio If WinActive Microsoft Visual S
  • 具有模板化构造函数以及复制和移动构造函数的类

    这个问题是这个问题的后续问题 模板类的模板构造函数的显式模板专业化另一个问题中给出的答案当然是正确的 但事实证明我并没有完全问我想问的问题 所以这是一个新问题 考虑以下代码 template
  • BufferedReader 相对于 Scanner 有什么好处

    这是关于图中深度优先搜索的代码 谁知道为什么在这段代码中使用 bufferedReader 类 为什么不使用 nextInt 函数来代替 它的特权是什么 是为了加快处理速度吗 谢谢 import java io BufferedReader
  • 为什么将二级子类化 Button 控件添加到 Grid 会产生 E_INVALIDARG?

    我在处理 C CX 中的 Windows UI Xaml Button 类的子类时遇到了这个问题 我想知道发生了什么 如果我将一个控件实例添加到网格中 一切都会按预期工作 如果我对控件进行子类化并添加一个实例subclass 一切都按预期进
  • 使用 sapply 进行中值插补

    我想替换数据框列中的缺失值 我写了下面的代码 MedianImpute lt function data data for i in 1 ncol data if class data i in c numeric integer if s
  • CGRectIntersectsRect [重复]

    这个问题在这里已经有答案了 可能的重复 CGRectIntersects矩形问题 我正在制作一个带有迷宫的应用程序 我在界面生成器中的迷宫内放置了一个球 我为其放置了一个出口 我有一个 TouchMoved void touchesMove
  • Dart 中的日期倒计时

    我正在尝试为我的特定日期创建一个倒计时 并显示在那之前还剩多少小时 分钟和秒 例如我想将计数器日期设置为 2018 年 10 月 25 日星期四上午 7 14 05 我想向用户显示 剩余时间 hh mm ss 直到 10 月 25 日 我试