Исправлена ваша проблема. Проверьте полный рабочий пример кода здесь .
Ваши проблемы здесь:
1) var inputDates = document.getElementsByClassName("inputDate").innerHTML;
здесь вы не захватываете массивэлементов, как вы запланировали, результат этой строки кода не определен, причина 'innerHTML'. Вам нужно захватить innerHTML каждого отдельного элемента в вашем цикле, например:
var moDate = moment(inputDates[i].innerHTML, "YYYY-MM-DD hh:mm:ss");
2) var moDate[i] = moment(inputDates[i], "YYYY-MM-DD hh:mm:ss");
вам не нужна часть [i]
в the moDate[i]
, потому что вы зацикливаете массив и создаете уникальный moDate для каждого элемента массива отдельно.
Также я удалил внутренний цикл, он просто избыточен.
Демонстрация в реальном времени:
(function() {
// get the input date from inputDate class element
var inputDates = document.getElementsByClassName("inputDate");
var outputDates = document.getElementsByClassName("outputDate");
for (var i = 0; i < inputDates.length; i++) {
// use moment() with input value and a string format pattern as arguments
var moDate = moment(inputDates[i].innerHTML, "YYYY-MM-DD hh:mm:ss");
// display the parsed date in a outputDate class element
outputDates[i].innerHTML = moDate.locale("fr").format("LLL");
}
}
)();
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<article>
<header>
<p class="inputDate">2018-06-15 11:27:30</p>
<p class="outputDate"></p>
</header>
<div class="question">
<p>1.Lorem ipsum dolor sit amet ?</p>
</div>
<div class="answer">
<p>1.Amet sit dolor ipsum lorem.</p>
</div>
</article>
<article>
<header>
<p class="inputDate">2019-07-18 15:15:45</p>
<p class="outputDate"></p>
</header>
<div class="question">
<p>2.Lorem ipsum dolor sit amet ?</p>
</div>
<div class="answer">
<p>2.Amet sit dolor ipsum lorem.</p>
</div>
</article>
<article>
<header>
<p class="inputDate">2019-08-14 10:23:00</p>
<p class="outputDate"></p>
</header>
<div class="question">
<p>3.Lorem ipsum dolor sit amet ?</p>
</div>
<div class="answer">
<p>3.Amet sit dolor ipsum lorem.</p>
</div>
</article>