【问题标题】:Momentjs two instances, different fromNowMomentjs 两个实例,不同于Now
【发布时间】:2016-03-01 17:43:24
【问题描述】:

momentjs 中为 fromNow() 创建自定义语言环境但又能够在其他地方使用标准语言环境的最佳实践是什么?

我希望能够使用普通的 fromNow (“几天前”),但也可以使用“短”的 fromNow (“1d+”)......意思是一天多以前。我让它工作了,但现在每当我使用 fromNow() 时,它总是使用“短” fromNow 版本

UI.registerHelper "momentizeFromNow", (ts) ->
  moment(ts).fromNow()

UI.registerHelper "momentizeFromNowShort", (ts) ->
  momentLocal = moment
  momentLocal.locale('en', relativeTime:
    future: "in %s"
    past:   "%s"
    s:  "now"
    m:  "1m"
    mm: "%dm+"
    h:  "1h"
    hh: "%dh+"
    d:  "1d"
    dd: "%dd+"
    w: "%dw"
    ww: "1w+"
    M:  "1w+"
    MM: "1w+"
    y:  "1w+"
    yy: "1w+"
  )
  momentLocal(ts).fromNow()

我已经尝试(不成功)使用 .clone() 函数

【问题讨论】:

  • 抱歉,UI.registerHelper 是什么??
  • 对不起,这只是流星的事情

标签: javascript meteor momentjs


【解决方案1】:

定义一个自定义语言环境,然后使用.locale() 来回切换或使用两个moment() 变量。

类似这样的:

moment.locale('en-cust', {
    relativeTime : {
    future: "in %s",
    past:   "%s",
    s:  "now",
    m:  "1m",
    mm: "%dm+",
    h:  "1h",
    hh: "%dh+",
    d:  "1d",
    dd: "%dd+",
    w: "%dw",
    ww: "1w+",
    M:  "1w+",
    MM: "1w+",
    y:  "1w+",
    yy: "1w+"
    }
});
//Defined custom locale as 'en-cust'

then = moment(1316116057189).locale('en');
thenCust = moment(1316116057189).locale('en-cust');
//Set variables to moments with specific locales

console.log(then.fromNow());
//4 years ago
console.log(thenCust.fromNow());
//1w+
console.log(thenCust.locale('en').fromNow());
//4 years ago -> switched locale with chaining method
console.log(then.locale('en-cust').fromNow());
//1w+ -> switched locale with chaining method
console.log(then.fromNow());
//1w+ as it is still set for 'en-cust' from previous chain
then.locale('en');
//Set it back
console.log(then.fromNow());
//4 years ago 

【讨论】:

  • 嗯我认为这会起作用,但它可能是流星绑定到时刻并在更改语言环境时全局切换的问题。有什么方法可以延长创建新函数的时刻(fromNowShort())?
  • 我对 Meteor 不是很熟悉,但它不应该破坏我提到的任何链条。您是否测试过yourMoment.locale('en-cust').fromNow() 链,根据需要切换locale()
猜你喜欢
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 2017-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多