首页 > 解决方案 > 检查时间间隔抖动

问题描述

如果用户的时间在上午 10 点到下午 4 点之间,我打算运行一个查询。DateTime.now()我知道我可以在颤抖中获得当前的日期时间。我如何知道用户的时间间隔是否在晚上 10 点到下午 4 点之间。

标签: flutterdatetimedart

解决方案


您可以使用DateTime.isAfterDateTime.isBeforeDateTime.compareTo来比较DateTime对象。

但是,我个人会使用使代码比 using 更具可读性的DateTime扩展,并且与/不同,它可以更轻松地为您的时间间隔提供包容性端点:package:basics.compareTo.isBefore.isAfter

import 'package:basics/date_time_basics.dart';

void main() {
   var now = DateTime.now();
   var startTime = DateTime(now.year, now.month, now.day, 22); // 10 PM today
   var endTime = DateTime(now.year, now.month, now.day, 16); // 4 PM today

   // Note that since your desired time spans midnight, startTime > endTime
   // and we use || where we'd normally use &&.
   if (now >= startTime || now <= endTime) {
     print('Between 10 PM and 4 PM');
   } else {
     print('Outside of 10 PM and 4 PM');
   }
}

(披露:我致力于DateTime扩展package:basics。)


推荐阅读