我有一个API返回的日期如下。
2020-04-30T14:52:07.123
我试图将其格式化如下。
$('.dateTime').text(moment(new Date("2020-04-30T14:52:07.123")).format("DD-MM-yyyy HH:mm:ss A"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://momentjs.com/downloads/moment.js"></script>
<span class="dateTime"></span>
但我没有得到正确的结果。我得到的是这样的结果。
"30-04-2020 00:00:00 AM"
日,月,年都是正确的 但时,分,秒都被设置为午夜。
我认为 00:00:00
是2.25.x版本的新特性的副作用,如果你用以前的版本(如2.24.0)运行你的代码,你会得到以下结果 30-04-yyyy 14:52:07 AM
.
你的代码的主要问题是,时刻标记是区分大小写的(见 format()
),所以你必须使用大写的 YYYY
显示4位数的年份,而不是小写。yyyyy
.
此外,由于你的输入字符串是ISO 8601认可的格式,你可以直接使用 moment(String)
并去除 new Date()
.
工作实例。
$('.dateTime').text(moment("2020-04-30T14:52:07.123").format("DD-MM-YYYY HH:mm:ss A"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.25.3/moment.js"></script>
<span class="dateTime"></span>