我想打印在“ 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()
,但是在Aurelia中,我不知道该怎么尝试。
我确实使用${endDateTime| dateFormat:"HH:mm:ss" - startDateTime| dateFormat:"HH:mm:ss"}
之类的东西进行了测试,但这无法正常工作,因为它无法将整个日期时间转换为秒或分钟...
因此,有没有我认为可以实施的干净解决方案?
答案 0 :(得分:1)
您想要的是相对时间,它正在通往浏览器,但是现在,您将不得不使用polyfill / library。您可以从yahoo中找到一个:https://github.com/yahoo/intl-relativeformat
答案 1 :(得分:1)
我使用值转换器解决了该问题。
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}