javascript - JQuery如何在使用Moment JS时返回正确的日期
问题描述
我有一些博客文章,我想在其中显示文章的发布日期。为此,我想使用momentjs
. 所以 HTML 看起来像这样
<span class="published_date" data-publish-date="2019-06-20"></span>
<span class="published_date" data-publish-date="2019-07-01"></span>
<span class="published_date" data-publish-date="2019-08-23"></span>
我的 JS 看起来像这样:
$(".published_date").each(function() {
let publishDate = $(this).attr("data-publish-date");
let formattedDate = moment(publishDate, "d. MMMM YYYY").format(
"d. MMMM YYYY"
);
$(this).text(formattedDate);
});
这会返回错误的日期
4. June 2019
1. July 2019
5. August 2019
我不知道为什么会发生这种情况,所以有人可以帮助我吗?
解决方案
两个问题:
你已经明确地给它一个格式来解析(
"d. MMMM YYYY"
),但该格式与你提供的数据不匹配("2019-06-20"
等)。格式化时,您使用的是
d
,而不是。D
根据文档,d
是星期几,而不是月份。
如果您使格式正确,它应该可以工作:
let formattedDate = moment(publishDate, "YYYY-MM-DD").format(
"D. MMMM YYYY"
);
现场示例:
$(".published_date").each(function() {
let publishDate = $(this).attr("data-publish-date");
let formattedDate = moment(publishDate, "YYYY-MM-DD").format(
"D. MMMM YYYY"
);
$(this).text(formattedDate);
});
<span class="published_date" data-publish-date="2019-06-20"></span>
<span class="published_date" data-publish-date="2019-07-01"></span>
<span class="published_date" data-publish-date="2019-08-23"></span>
<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.24.0/moment.min.js"></script>
推荐阅读
- java - 为什么 TableView 不显示其值是从其他列计算的列值?请给我一些解决方案
- java - 如何解决从子类为其父类调用方法?
- python - 使用 Scrapy 中的文件管道下载后如何获取文件路径?
- unity3d - 我如何将 android SDK 更新到 26.1.1
- mysql - 提供要从 mysql 结果中排除的用户主机对
- java - Dagger 2 多绑定教程的 @AutoAnnotation 不起作用。如何让它工作?
- r - 如何读取满足特定条件的大型数据集的子集?
- python - 我可以用二维数组的 numpy 数组提供深度学习模型吗?
- c++ - 通过回退到 C 的 C++ 类型双关语
- android - 为什么我在 Mac 上的 Android Studio 3.5.1 中出现 Gradle Sync 问题 Host is down