我得到以下输出:
>> moment('18/07/2019@14:15:56.513+0000', 'dd/MM/yyyy@HH:mm:ss.SSSZ').format('DD/MM/YYYY');
>> "01/07/2019"
我需要获取18/07/2019
而不是01/07/2019
。
有什么想法吗?
答案 0 :(得分:1)
将moment('18/07/2019@14:15:56.513+0000', 'dd/MM/yyyy@HH:mm:ss.SSSZ').format('DD/MM/YYYY');
更改为:
moment('18/07/2019@14:15:56.513+0000', 'DD/MM/yyyy@HH:mm:ss.SSSZ').format('DD/MM/YYYY');
应该可以解决问题。请注意,第一个dd
已更改为DD
。
moment.js文档(https://momentjs.com/docs/#/parsing/string-format/)中,DD
是该月当前日期的掩码。
答案 1 :(得分:0)
时刻令牌区分大小写,因此您必须使用'DD/MM/YYYY[@]HH:mm:ss.SSSZ'
而不是'dd/MM/yyyy@HH:mm:ss.SSSZ'
。小写的dd
代表星期几的名称(可识别语言环境),而没有小写的yyyy
,则年份使用大写的YYYY
。
请参阅moment(String, String)
文档。
您可以使用方括号[]
来转义字符。
这里有一个现场样本:
console.log( moment('18/07/2019@14:15:56.513+0000', 'DD/MM/YYYY[@]HH:mm:ss.SSSZ').format('DD/MM/YYYY') );
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>