【发布时间】:2020-10-13 02:02:47
【问题描述】:
我正在尝试找出 Dart 中各个单位的两个日期之间的持续时间差异。我正在查看jiffy,因为它受到moment.js 和moment.js 的启发,可以通过以下sn-p 实现:
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 类,但它似乎也给出了相同的输出,只是可用的单位更少
【问题讨论】:
-
这个有很多答案,这里有一个:stackoverflow.com/questions/52713115/… Datetime 类和 Duration 类是要走的路
-
@GrahamD 肯定会给出差异,但我正在寻找差异持续时间?我不确定我的措辞是否正确。假设我的开始日期是 3 月 1 日,结束日期是 4 月 1 日。这两者之间的差异是 32 天。但我希望最终输出为 1 个月 1 天。
-
好的,我想我明白了。也许这个pub.dev/packages/simple_moment 和这个pub.dev/packages/date_util 有帮助?
-
@GrahamD 谢谢!我会给他们一个机会并在我继续时更新这个问题
-
@GrahamD 得到了答案!
标签: flutter datetime dart momentjs