Moment.js文本格式和类

tas*_*ast 3 javascript jquery momentjs

第一次发帖.所以我必须在一个看起来像这样的元素中格式化一些文本

<div class="entry-time">
  2012-05-30T20:11:06+00:00 
</div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用moment.js将其格式化为更具可读性的内容.我只能用javascript从前端做到这一点.我写了一个看起来像这样的函数.

$(document).ready(function() {
    function formatDate(date) {
        formattedDate = date.text();
        var d = moment(formattedDate, "YYYY-MM-DDTHH:mm:ss");
        $(date).html( d.format("dddd, MMMM Do YYYY, h:mm:ss a"));
    };

    formatDate($('.entry-date'));
});
Run Code Online (Sandbox Code Playgroud)

这有效,如果有一个元素,但是当有多个元素时,它会将所有内容格式化为一个日期.我知道这与jQuery拉入一系列元素有关,但我不知道如何使用entry-date类对每个元素做了什么.

有人可以帮忙吗?先感谢您.

小智 6

错误的核心是jQuery .text()方法获取"匹配元素集合中每个元素的组合文本内容,包括它们的后代"(api.jquery.com/text),而不是迭代集合你想要的元素.

这样的东西应该工作,将函数传递给jQuery .html()setter方法:

$(".entry-date").html(function(index, value) {
    return moment(value, "YYYY-MM-DDTHH:mm:ss").format("dddd, MMMM Do YYYY, h:mm:ss a");
});
Run Code Online (Sandbox Code Playgroud)