以Angularjs显示带小时的日期

以Angularjs显示带小时的日期,angularjs,momentjs,Angularjs,Momentjs,这是日期和时间 Date 2018-05-25T10:35:04.000Z 预期输出=3天12小时 我想显示日期和时间,就像上面给出的一样。目前,我正在使用moment.js。有没有像上面那样显示的方法?您可以使用这个 以下是完整的示例: calcDiff = (date : string) => { let diff_in_string = ''; let original_date = moment(date); let date_time_now = mom

这是日期和时间

Date 2018-05-25T10:35:04.000Z
预期输出=3天12小时

我想显示日期和时间,就像上面给出的一样。目前,我正在使用
moment.js
。有没有像上面那样显示的方法?

您可以使用这个

以下是完整的示例:

calcDiff = (date : string) => {
    let diff_in_string = '';
    let original_date = moment(date);
    let date_time_now = moment();
    let diff_in_object: any = moment-presice.preciseDiffBetweenDates(original_date, date_time_now, true);
    if (diff_in_object.days > 0) {
        diff_in_string = diff_in_string + diff_in_object.days + ' ';
        if (diff_in_object.days === 1) {
            diff_in_string += 'Day '
        } else {
            diff_in_string += 'Days '
        }
    }
    if (diff_in_object.hours > 0) {
        if (diff_in_object.days > 0) {
            diff_in_string += 'and ' + diff_in_object.hours + ' '
        } else {
            diff_in_string += diff_in_object.hours + ' '
        }
        if (diff_in_object.hours === 1) {
            diff_in_string += 'Hour '
        } else {
            diff_in_string += 'Hours '
        }
    }
    diff_in_string += 'ago'
    return diff_in_string;
}

除Zvi的建议外,您还可以使用

在控制器中说您有两个日期:

app.controller('AppCtrl', function($scope) {
    ctrl = this;

    ctrl.date1 = new Date("2018-05-22T22:35:04.000Z");
    ctrl.date2 = new Date("2018-05-25T10:35:04.000Z");
});
在HTML中,您可以使用日期过滤器显示差异:

{{ctrl.date2 - ctrl.date1 | date:"dd 'days' HH 'hours'"}}

<>这是一个工作

你应该考虑使用这个库(你可以检查)。 它允许你用任何你想要的语言翻译两个日期之间的差异

例如:

var yourdate= moment().set({'year': 2018, 'month': 5, 'day': 22});
var today = moment();
var duration = moment.duration(today.diff(yourdate));
var humanized = humanizeDuration(duration, { units: ['d', 'h'], language: language, round: true });

您也可以使用间隔符等设置格式。

谢谢您的建议,但它不起作用。请尝试以下两个日期:ctrl.date1=新日期(“2018-05-22T22:35:04.000Z”);ctrl.date2=新日期(“2018-05-22T10:35:04.000Z”)是的,当ctrl.date1>ctrl.date2时它不起作用,因为我们正在执行date1与date2的减法