两个日期之间的差异持续时间 - Dart
Difference duration between two dates - Dart
我试图找出 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 class 但它似乎也提供相同的输出,只是可用的单位较少
非常感谢 Alex 在 this question I've resolved it using the 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
如果你也想要时差
我试图找出 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 class 但它似乎也提供相同的输出,只是可用的单位较少
非常感谢 Alex 在 this question I've resolved it using the 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
如果你也想要时差