jQuery如何使用momentjs翻译文本日期

时间:2018-10-03 21:00:10

标签: javascript jquery momentjs

我有一堆<p>-标记,每个标记中都有一个日期。现在,我想使用momentjs将其转换为另一种格式,但实际上并没有用。

<div class="container">

  <p class="ordered">2018-10-01</p>

  <p class="ordered">2018-10-02</p>

  <p class="ordered">2018-10-03</p>
</div>

和我的js文件:

$(".ordered").each(item => {
  let formatted_order_date = moment(item).locale("de").format("Do MMM");
});

这里是JSFIDDLE

那么,有人可以告诉我这里是什么问题吗?

2 个答案:

答案 0 :(得分:1)

您示例中的

项目不是日期字符串,而是索引。
每个回调都有两个参数:索引和项目(第二个):each((i,item) ...
该项目然后是完整的html元素,因此我们需要从中获取“值”(内部html): $(item).html()

$(".is-ordered").each((i,item) => {
  // console.log($(item).html());
  let datestring = $(item).html();
  let formatted_order_date = new moment(datestring)
  .locale("de")
  .format("Do MMM");
  console.log(formatted_order_date); // 3rd Oct
});

答案 1 :(得分:1)

请尝试使用item,而不要使用$(this)

$(".ordered").each(() => {
  const formatted_order_date = moment($(this).text().trim()).locale("de").format("Do MMM");
  $(this).text(formatted_order_date);
});