簡體   English   中英

Momentjs的兩個實例,與現在不同

[英]Momentjs two instances, different fromNow

momentjs中用於為fromNow()創建自定義語言環境但還能在其他地方使用標准語言環境的最佳實踐是什么?

我希望能夠使用正常的fromNow(“幾天前”),但也可以使用“短” fromNow(“ 1d +”)...意味着一天以上。 我可以使用它,但是現在每當我使用fromNow()時,它總是使用“ short” 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()函數(未成功)

定義一個自定義語言環境,然后使用.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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM