【问题标题】:Time subtraction in AureliaAurelia中的时间减法
【发布时间】:2018-09-19 12:46:54
【问题描述】:

我想打印在“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"} 之类的东西进行了测试,但这不起作用,因为它不会将整个日期时间转换为秒或分钟...

因此,我认为是否有一个干净的解决方案可以实施?

【问题讨论】:

    标签: datetime type-conversion aurelia


    【解决方案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}

    【讨论】:

      【解决方案2】:

      你想要的是相对时间,它正在进入浏览器的路上,但现在,你必须使用 polyfill / library 来实现它。您可以找到来自 yahoo 的一个:https://github.com/yahoo/intl-relativeformat

      【讨论】:

        猜你喜欢
        • 2016-08-30
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 2012-12-03
        • 2013-11-17
        • 1970-01-01
        • 2014-04-13
        • 1970-01-01
        相关资源
        最近更新 更多