flutter 高效计算时间差

首先,了解一下,flutter时间方面的显示

var t = DateTime.now();
print(t); //当前时间 2021-05-29 19:57:55.180309

var m = t.millisecondsSinceEpoch;
print(m); //时间戳 1622289475180

var s = DateTime.fromMillisecondsSinceEpoch(1622260086181);
print(s); //时间戳转时间 2021-05-29 11:48:06.181

var hours = t.difference(s).inHours;
print(hours);

时间差的函数是x.difference(),后面可以跟天数差,小时差,分钟差,秒差,毫秒差,等

所以,我的代码如下,timeHandler接收传进来一个参数,要求为时间戳

_timeHandler(milliSecond) {
    var t = DateTime.now();
    print(t); //当前时间戳
    var s = DateTime.fromMillisecondsSinceEpoch(milliSecond);
    print(s); //时间戳转时间 2021-05-29 11:48:06.181

    var timeLag = t.difference(s); //时间戳进行比较
    print("时间差:${timeLag}");
    print("时间差 天:${timeLag.inDays}");
    print("时间差 时:${timeLag.inHours}");
    print("时间差 分:${timeLag.inMinutes}");
    print('相差时间:${timeLag.inSeconds}');

    var dayLag = timeLag.inDays;
    var hourLag = timeLag.inHours;
    var minLag = timeLag.inMinutes;
    var secLag = timeLag.;

    if (dayLag > 1 || dayLag == 1) {
      //如果时间差大于24小时,显示:x天前
      print("${dayLag}天前");
    } else if (hourLag < 24 && hourLag > 1) {
      //如果时间差小于24小时,显示:x小时前
      print("${hourLag}小时前");
    } else if (minLag > 0 && minLag < 60) {
      //如果时间差小于1小时,显示:x分钟前
      print("${minLag}分钟前");
    } else if (secLag > 0 && secLag < 60) {
      //如果时间差小于1分钟,显示:刚刚
      print("刚刚:${secLag}");
    }
  }

调用:

_timeHandler(1622380140781);

结果如下:

 

怎么样,是不是很方便?这就是Dart语言的一个好处,如果是js的话,需要自己对时分秒进行计算,但是dart已经帮我们对差值进行封装计算,只需要调用.difference().inHours or inDays

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值