Moment.js ZH_CN语言环境的格式时间

时间:2016-01-11 17:02:17

标签: javascript localization momentjs

我正在尝试使用ZH_CN语言环境使用moment.js格式化日期。我使用以下代码:

moment('2013-12-31T13:21:55+00:00').locale('zh_cn').format("LL h:m:s:SSS")

返回以下日期: 2013年12月31日1:21:55:000

但是时间格式不正确。我希望时间会在每个数字后都有适当的中文字符。我在locales.js的瞬间查看,并注意到以下是为ZH_CN语言环境定义的:

  relativeTime : {
        future : '%s内',
        past : '%s前',
        s : '几秒',
        m : '1分',
        mm : '%d分',
        h : '1小时',
        hh : '%d小时',
        d : '1天',
        dd : '%d天',
        M : '1个月',
        MM : '%d个月',
        y : '1年',
        yy : '%d年'
    }

即使我在格式字符串(h:m:s:sss)中指定它们,这些字符也不会在时间内返回。我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

relativeTime自定义仅影响产生相对时间输出的函数,例如fromNow

此外,只有LL等本地化格式说明符才会包含您要查找的字符。您可以将它们组合起来以获得所需的输出。

var m = moment('2013-12-31T13:21:55+00:00').locale('zh_cn');

m.format("LL")        // "2013年12月31日"
m.format("LLL")       // "2013年12月31日凌晨5点21分"
m.format("LT")        // "凌晨5点21分"
m.format("LTS")       // "凌晨5点21分55秒"
m.format("LL[]LTS")   // "2013年12月31日凌晨5点21分55秒"

我相信最后一个会满足您的需求。请注意,必须使用[]才能将LLLTS解释为单独的代码,而不会引入其他字符。