我有一个字符串作为Mon 03-Jul-2017, 11:00 AM/PM,我必须使用moment js将此字符串转换为11:00 AM/PM这样的字符串。

这里的问题是我无法从日期时间字符串中获取AMPM

我正在这样做:

moment(Mon 03-Jul-2017, 11:00 AM, 'dd-mm-yyyy hh:mm').format('hh:mm A')

当我得到11:00 AM时,它工作正常,但如果字符串中包含PM,它仍会在输出中提供AM

像这样moment(Mon 03-Jul-2017, 11:00 PM, 'dd-mm-yyyy hh:mm').format('hh:mm A')也在输出中提供11:00 AM而不是11:00 PM

最佳答案

解析输入时,您使用了错误的格式 token 。您应该使用ddd表示星期几的名称,DD表示月份的天,MMM表示月份的名称,YYYY表示年,hh表示1-12小时,mm表示分钟,A表示AM/PM。 。请参阅 moment(String, String) 文档。

这是一个工作示例:

console.log( moment('Mon 03-Jul-2017, 11:00 AM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );
console.log( moment('Mon 03-Jul-2017, 11:00 PM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

10-05 21:06
查看更多