Преобразовать и разделить число/месяц в формате даты
Приведенный ниже код преобразовывает даты формата 25.05.2024 в такой формат 25 / 05 / 24
const newsItems = document.querySelectorAll('.news-item');
const updNewsItems = document.querySelector('.upd-news-items');
for (let i = 0; i < newsItems.length; i++) {
let date = newsItems[i].querySelector('.date');
if (date) {
date = date.textContent.replace(/[^\.\d]/g, '');
let newDate = date.slice(8, 10);
date = date.slice(0, 5).replace(/\./g, ' / ') + ` / ${newDate}`;
} else {
date = '';
}
let newsItem = document.createElement('div');
newsItem.classList.add('upd-news-item');
newsItem.insertAdjacentHTML(
'afterbegin',
`
<span class="upd-news-date">${date}</span>
`
);
updNewsItems.append(newsItem);
}
.news-items {
display: flex;
flex-direction: column;
gap: 5px;
border: 1px solid blue;
width: 200px;
margin: 0 0 20px 0;
}
.news-item {
border-bottom: 1px solid blue;
}
.news-item:last-of-type {
border: 0;
}
.upd-news-items {
display: flex;
flex-direction: column;
gap: 5px;
border: 1px solid red;
width: 200px;
margin: 0 0 20px 0;
}
.upd-news-item {
border-bottom: 1px solid red;
}
.upd-news-item:last-of-type {
border: 0;
}
<div class="news-items">
<div class="news-item">
<div class="date">25.05.2024</div>
</div>
<div class="news-item">
<div class="date">26.05.2024</div>
</div>
<div class="news-item">
<div class="date">27.05.2024</div>
</div>
</div>
<div class="upd-news-items"></div>
Помогите пожалуйста убрать при преобразовании год, а число и месяц обернуть в отдельные блоки, чтобы на выходе получился подобный формат:
<span class="upd-news-date">
<span class="upd-news-day">25</span> / <span class="upd-news-month">05</span>
</span>
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
Помогите пожалуйста убрать при преобразовании год, а число и месяц обернуть в отдельные блоки, чтобы на выходе получился подобный формат
Предложу такой вариант решения...
const updNewsItems = document.querySelector('.upd-news-items')
const tmpl = document.querySelector('template');
document.querySelectorAll('.news-item .date').forEach(o => {
const a = o.textContent.split('.')
const v = `<span class="upd-news-date">
<span class="upd-news-day">${a[0]}</span> / <span class="upd-news-month">${a[1]}</span>
</span>`
updNewsItems. insertAdjacentHTML('beforeend', v);
})
.news-items {
display: flex;
flex-direction: column;
gap: 5px;
border: 1px solid blue;
width: 200px;
margin: 0 0 20px 0;
}
.news-item {
border-bottom: 1px solid blue;
}
.news-item:last-of-type {
border: 0;
}
.upd-news-items {
display: flex;
flex-direction: column;
gap: 5px;
border: 1px solid red;
width: 200px;
margin: 0 0 20px 0;
}
.upd-news-item {
border-bottom: 1px solid red;
}
.upd-news-item:last-of-type {
border: 0;
}
/* для демонстрации */
.upd-news-date span {
border: 1px dotted;
}
<div class="news-items">
<div class="news-item">
<div class="date">25.05.2024</div>
</div>
<div class="news-item">
<div class="date">26.05.2024</div>
</div>
<div class="news-item">
<div class="date">27.05.2024</div>
</div>
</div>
<div class="upd-news-items"></div>