Вычитание времени в Аурелии - PullRequest
0 голосов
/ 19 сентября 2018

Я хотел бы напечатать продолжительность события, которое происходит между 'startDateTime' и 'endDateTime', выраженную в минутах или секундах (если меньше 1 минуты).

Другими словами, ${startDateTime | dateFormat:"YYYY-MM-DD HH:mm"}2018-09-07 11:57 и ${startDateTime | dateFormat:"YYYY-MM-DD HH:mm"} 2018-09-07 13:00.Я хотел бы напечатать 63 minutes.

В PHP я бы сделал ->getTimestamp(), но в Аурелии я понятия не имею, что еще попробовать.

Я тестировал с чем-токак ${endDateTime| dateFormat:"HH:mm:ss" - startDateTime| dateFormat:"HH:mm:ss"}, но это не может работать, так как не конвертирует все время даты в секунды или минуты ...

Следовательно, есть ли чистое решение, которое я могу реализовать на мой взгляд?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Я решил это с помощью преобразователя значений.

import moment = require("moment");

export class DurationValueConverter {
    public toView(startAt, endAt) {
        if (!endAt) {
            // If end date is missing, use the current date and time.
            endAt = moment();
        }

        const duration = moment.duration(moment(endAt).diff(moment(startAt)));

        return duration.humanize();
    }
}

Использование: ${startedAt | duration:endedAt}

0 голосов
/ 21 сентября 2018

То, что вы хотите иметь, это относительное время, оно находится на пути к браузерам, но сейчас вам придется использовать для этого полифилл / библиотека.Один из них можно найти у Yahoo: https://github.com/yahoo/intl-relativeformat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...