使用Moment自定义格式化日期

4
var format = 'EEEE, D 'de' MMMM 'de' Y'
moment(date).format(format);

我有一个自定义格式,并与 moment 一起使用,得到了这个结果

exp: segunda-feira, 2 de janeiro de 2017
act: Segunda-feira, 2 11 Janeiro 11 2017

请注意,模式中的占位符de实际上被解析了。是否有一种方法可以使用moment以期望的格式segunda-feira, 2 de janeiro de 2017获取日期?


2个回答

9
您需要使用方括号[]来转义格式字符串中的字符,参见format文档:

要在格式字符串中转义字符,可以将字符放在方括号中。

此外请注意,moment中没有EEEE标记,但是单个E表示星期几(ISO),因此在您的情况下,您将得到2222。使用dddd以获得所需的输出。
这里是一个可行的例子:

var date = '2017-01-02';
var format = 'dddd, D [de] MMMM [de] YYYY';
console.log(moment(date).format(format));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/locale/pt.js"></script>


0

为了在格式字符串中转义字符,你可以将字符放在方括号中。

var momObj = moment();
var format = 'EEEE, D [de] MMMM [de] Y';
var fString = momObj.format(format);
console.log(fString);
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接