javascript - 时刻js时间格式没有产生正确的时间
问题描述
我有一个返回日期的 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
是 moment 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>
推荐阅读
- c# - LINQ 方法,它按我发送的列名动态排序数据
- php - Laravel“下一个错误异常:遇到格式不正确的数值”php-7.4
- hibernate - Hibernate 5.4 运行时字节码增强器 enableLazyInitialization 不起作用
- scikit-learn - AttributeError:“KMeans”对象没有属性“inertia_”
- testing - 表示具有 2 次转换到相同下一个状态的状态以及如何对其执行 0 开关覆盖测试
- php - 未收到对 APNs 服务器的某些推送请求的响应
- python - 使用 Python/Django 如何将外部源中的值替换为 HTML 页面
- python-3.x - 在图中命名子图
- java - 用函数初始化Java枚举属性?
- python - 从 Jupyter Notebook/Visual Studio Code 和 Python 连接到 SQL 数据库的最安全方法是什么?