moment js timeformat不能产生正确的时间。

问题描述 投票:0回答:1

我有一个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"

日,月,年都是正确的 但时,分,秒都被设置为午夜。

javascript momentjs
1个回答
1
投票

我认为 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>
© www.soinside.com 2019 - 2024. All rights reserved.