【问题标题】:format message on angular-moment moment.js在 angular-moment moment.js 上格式化消息
【发布时间】:2014-05-15 14:32:34
【问题描述】:

如何使用angular-moment 更改之前的消息。我使用这个angular-moment 库来显示时间前的消息。

 <span am-time-ago="created_at"></span>

它显示诸如“几秒钟前”之类的消息。

我们怎样才能使这条消息更短?我们可以从这条消息中删除ago 吗? 所以消息会是这样的: 1 秒、1 分钟、12 分钟、1 小时、12 小时、2 年等

我尝试使用:

moment.lang('en', {
relativeTime : {
    future: "in %s",
    past:   "%s ago",
    s:  "sec",
    m:  "1m",
    mm: "%m",
    h:  "1h",
    hh: "%h",
    d:  "1d",
    dd: "%dd",
    M:  "1m",
    MM: "%dm",
    y:  "1y",
    yy: "%dy"
}
});

将这个东西放在模块之后的角度app.js中。它在 1 秒、1 分钟、1 小时等时间内运行良好。
但它显示% 代替绝对时间。比如%min,而不是12min

有什么建议吗?

【问题讨论】:

  • 当文档涵盖这个确切的场景时,在使用.fromNow 时,添加一个参数来原谅后缀,例如:moment().fromNow(true) 省略了“之前”部分。

标签: angularjs angularjs-directive momentjs


【解决方案1】:

angular-moment 提供amTimeAgoConfig,用于指定是否显示ago

app.constant('amTimeAgoConfig', {
  withoutSuffix: true
});

moment.js 允许我们定义函数来格式化relativeTime,这些似乎与angular-moment 一起工作。在这个例子中,我定义了秒和分钟的函数:

moment.lang('en', {
  relativeTime: {
    future: "in %s",
    past: "%s ago",
    s: function(number, withoutSuffix, key, isFuture) {
      return number + ' sec';
    },
    m: "1m",
    mm: function(number, withoutSuffix, key, isFuture) {
      return number + 'm';
    }
  }
});

如果你想试试代码,here it is on Plunker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2016-02-10
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多