使用具有自定义格式的时刻格式化日期

cod*_*ons 2 javascript node.js momentjs

var format = 'EEEE, D 'de' MMMM 'de' Y'
moment(date).format(format);
Run Code Online (Sandbox Code Playgroud)

我有一个自定义格式并使用它moment并得到这个

exp: segunda-feira, 2 de janeiro de 2017
act: Segunda-feira, 2 11 Janeiro 11 2017
Run Code Online (Sandbox Code Playgroud)

注意de模式中的占位符实际上被解析了..有没有办法让我segunda-feira, 2 de janeiro de 2017使用moment以预期的格式获取日期?

Vin*_*zoC 7

您必须使用[]方括号来转义格式字符串中的字符,请参阅format文档:

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

此外请注意,EEEE在 moment 中没有标记,但单曲E代表Day of Week (ISO),因此在您的情况下,您将拥有2222. 使用dddd得到desidered输出。

这是一个工作示例:

var date = '2017-01-02';
var format = 'dddd, D [de] MMMM [de] YYYY';
console.log(moment(date).format(format));
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)