如何使用angular2-moment将时间格式化为FEBRUARY 2018格式?
解决方法
要实现将日期格式化为FEBRUARY 2018的效果,结合angular2-moment模块可以这样做:
方法一:结合Angular内置uppercase管道(简单直观)
angular2-moment的amDateFormat管道支持Moment.js的格式字符串,我们可以先用它输出完整月份加年份,再通过Angular内置的uppercase管道转成全大写:
{{ '2018-02-26T12:00:14.151Z' | amParse : 'YYYY/MM/DD' | amDateFormat : 'MMMM YYYY' | uppercase }}
解释一下:
amParse:如果你的输入日期格式需要解析的话保留(其实ISO格式的日期Moment可以直接识别,这个管道也可以省略)amDateFormat: 'MMMM YYYY':MMMM会输出完整的月份名称(比如February),YYYY输出四位年份uppercase:将结果转成全大写,最终得到FEBRUARY 2018
方法二:仅使用angular2-moment相关能力
如果严格要求只依赖angular2-moment模块,我们可以利用amParse返回的Moment实例直接调用原生方法:
{{ ('2018-02-26T12:00:14.151Z' | amParse).format('MMMM YYYY').toUpperCase() }}
这里amParse将字符串转为Moment对象,然后调用format方法生成目标格式的字符串,最后用toUpperCase()转成全大写。
两种方法都能达到你要的效果,第一种更符合Angular模板的管道链式调用风格,第二种则完全基于Moment的能力实现。
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

