Jquery, как перевести текстовую дату с помощью моментов - PullRequest
0 голосов
/ 04 октября 2018

У меня есть куча <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 голосов
/ 04 октября 2018

Вместо использования item, попробуйте использовать $(this).

$(".ordered").each(() => {
  const formatted_order_date = moment($(this).text().trim()).locale("de").format("Do MMM");
  $(this).text(formatted_order_date);
});
0 голосов
/ 04 октября 2018
Элемент

в вашем примере - это не строка даты, а индекс.
В каждом обратном вызове есть два параметра: индекс и элемент (в качестве второго): 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
});
...