@hypero

Смена названия месяца?

Всем привет.
Как сменить название месяца в конце последнего дня в каждом месяце?
Например есть div: <div>31 января</div>
Нужно 31 января изменить слово "января" на "февраля". И так далее. Но еще есть загвостка, что в кажлом месяце разное кол-во дней. Как можно такое решить?
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 4
ildarin
@ildarin
Тут нужно в комплексе смотреть. Очень похоже на какой-то костыль.
Как правило - код HTML - это уже результат работы фронт части, т.е. это по сути .exe для сайта. Решение на JS редактировать HTML - это как минимум странно. В общем и целом должно решаться редактированием того кода, который этот самый DIV и создает. Но тем не менее:

var d2 = document.createElement('div')
document.body.append(d2)

var d = document.createElement('div')
d.innerText = '31 января'
d2.append(d)

var replaces = [['января','февраля']]

new Array(document.querySelectorAll('div')).filter(d=>d.innerText='31 января').forEach(a=>{
replaces.forEach(r=>{
  /** @type {string} */
  var t = a.innerText
  a.innerText = t.replace(r[0],r[1])
})
console.log( a.innerText)
})
Ответ написан
Комментировать
freeExec
@freeExec
Участник OpenStreetMap
// Создаёшь себе массив из количества дней в каждом месяце (с фиксом на високосный год)
const maxDays = [31, 28, 31 ...];
var newMonthDate = new Date(curDate.getYear(), (curDate.getMonth() + 1) % 12, maxDays[(curDate.getMonth() + 1) % 12]);
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Задача не вполне ясна. Но вот пара подсказок:

  1. делать из строки "31 января" полноценный объект даты, дописав текущий год
  2. из объекта Date легко узнать, последний ли это день месяца: прибавить 1 день и сравнить, изменился ли месяц
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Все разработчики раз в жизни сталкиваются с календарными расчетами. И прежде чем решать что делать с 31 января - задайте себе вопрос - а что за дата будет опубликована? Дата сервера? Дата клиента? Это могут быть разные даты. Вспомним что люди живут в разных часовых поясах.

Поэтому задача смены января на февраля - это игрушка. Это не настоящая задача. И надо обсуждать ее чуть более глубоко.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы