Как получить последние 30 минут, 1 час времени от текущего времени в DART - PullRequest
3 голосов
/ 01 октября 2019

как я могу получить последние 3 часа времени от текущего времени в DART

Я получаю текущее время этим

DateTime toTime = new DateTime.now();

Я хочу получить последние последние 30 минут,lastOneHour, lastThreeHour, последние 6, последние 12, последние 24 раза с текущего времени.

Я пытался сделать так

    from = toTime.subtract(new Duration(hours: 0.5)).millisecondsSinceEpoch;
    //This is not working

Я конвертирую эти результаты в эпоху времени.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Попробуйте этот пакет, Jiffy . Вдохновленный momentjs . Он также учитывает високосные годы и количество дней в каждом месяце

Чтобы получить последние 30 минут

Jiffy().subtract(minutes: 30);

// You can also add your DateTime object
Jiffy(DateTime.now()).subtract(minutes: 30);

Чтобы получить последние 3 часа

Jiffy().subtract(hours: 3);

Вы также можете получить месяцы и годы

var jiffy = Jiffy()
    ..subtract(minutes: 30, hours: 3, days: 6, months: 2, years: 1);

print(jiffy.dateTime);
// Or you can format it on the go
print(jiffy.format("dd, MMM yyyy"));
print(jiffy.yMMMd);

Надеюсь, это помогло.

Отказ от ответственности: я создал пакет Jiffy.

0 голосов
/ 20 октября 2019

Как указал @ julemand101, параметр Duration имеет свой именованный параметр hours в виде целого числа. Прохождение двойного бросит ошибку. Вместо этого напишите свой код примерно так:

DateTime curTime = new DateTime.now(); //Current local time
DateTime thirtyMinAgo = curTime.subtract(Duration(minutes: 30));
int thirtyMinAgoInMs = thirtyMinAgo.millisecondsSinceEpoch;
return thirtyMinAgoInMs;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...