-1

我试图找出 Dart 中各个单位的两个日期之间的持续时间差异。我正在看jiffy,因为它受到 moment.js 和 moment.js 的启发,这将通过以下代码段实现:

const dateOne= moment('3/29/2020','M/D/YYYYY'); //29th March 2020
const currentDate = moment();
// get the difference between the moments
const diff = currentDate.diff(dateOne);
//express as a duration
const diffDuration = moment.duration(diff);

const diffDuration = {
  months: diffDuration.months(), //6 months
  days: diffDuration.days(), //14 days
  hours: diffDuration.hours(), //21 hours
  minutes: diffDuration.minutes(), //55 minutes
  seconds: diffDuration.seconds(), //44 seconds
}

但是使用 Jiffy 我只能找到差异,而不是差异持续时间

var jiffy1 = Jiffy(); //get current time
var jiffy2 = Jiffy("2020-03-29", "yyyy-MM-dd");
var _months = jiffy1.diff(jiffy2, Units.MONTH); //6 
var _days = jiffy1.diff(jiffy2, Units.DAY); //197 days
var _hours = jiffy1.diff(jiffy2, Units.HOUR); //284,99 hours
var _seconds = jiffy1.diff(jiffy2, Units.SECOND );
var _minutes = jiffy1.diff(jiffy2, Units.MINUTE);

有什么方法可以在 Dart (Flutter) 中实现该功能,它不必与包一起使用。我确实考虑过 DateTime 类,但它似乎也给出了相同的输出,只是可用的单位更少

4

1 回答 1

0

非常感谢 Alex 在这个问题上我已经使用time_machine包解决了它

import 'package:time_machine/time_machine.dart';
LocalDateTime a = LocalDateTime.now();
LocalDateTime b = LocalDateTime.dateTime(DateTime(2020, 3, 29, 0, 0, 0));
Period diff = a.periodSince(b);
var _months = diff.months;
var _days = diff.days;
var _hours = diff.hours;
var _seconds = diff.seconds;
var _minutes = diff.minutes;
print("years: ${diff.years}; months: ${diff.months}; days: ${diff.days}; hours: ${diff.hours}; minutes: ${diff.minutes}; seconds: ${diff.seconds}");

不要忘记使用LocalDateTime,而不仅仅是LocalDate你想要时差

于 2020-10-22T00:38:08.480 回答