【问题标题】:format date using moment with custom format使用自定义格式的时刻格式化日期
【发布时间】:2017-03-07 01:44:13
【问题描述】:
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 获取日期?
【问题讨论】:
标签:
javascript
node.js
momentjs
【解决方案1】:
您必须使用[] 方括号来转义格式字符串中的字符,请参阅format 文档:
要对格式字符串中的字符进行转义,可以将字符括在方括号中。
此外请注意,此时没有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>
【解决方案2】:
格式字符串中的escape characters,可以用方括号括起来。
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>