Попалась интересная задачка, на баннере нужно было выводить «Акция действует до (тут последний день месяца)», решил сделать это на Javascript, ну чтоб не лазить каждый раз в код для правок, вот что получилось
var date = new Date();
var lastDayDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);
var lastDay = lastDayDate.toLocaleString('RU', {day: 'numeric'});
var monthes = ['ЯНВАРЯ','ФЕВРАЛЯ','МАРТА', 'АПРЕЛЯ','МАЯ','ИЮНЯ','ИЮЛЯ', 'АВГУСТА', 'СЕНТЯБРЯ', 'ОКТЯБРЯ', 'НОЯБРЯ', 'ДЕКАБРЯ'];
var result = lastDay+' '+monthes[date.getMonth()];
document.write(result);
Самая важная строка в коде, это строка номер 2, в ней создается нужный нам объект даты через конструктор в нем используется текущий год, следующий месяц, и нулевой день. Т.к нулевого дня не существует, то JS сдвигает дату на 1 день назад и мы получаем последний день текущего месяца.
В следующей строке форматируем вывод — оставляем вывод только дня, потому что JS выводит месяц в именительном падеже, т.е на баннере будет «ДО 31 ЯНВАРЬ СКИДКА 10%», что выглядит косячно, и именно по этом чуть ниже есть массив месяцев в родительном падеже.
Затем клеим нужный результат в одну переменную и выводим.
Например, в моем случае, нужно было выводить в элемент с классом «lastday», то
var el = document.getElementsByClassName("lastday"); // Find the elements
for(var i = 0; i < el.length; i++){
el[i].innerText=result; // write text
}
Если нужен еще и год, то меняем 5 строку так
var result = lastDay+' '+monthes[date.getMonth()]+' '+date.getFullYear();
<!DOCTYPE html>
<html>
<head>
<title>Вывод последнего дня текущего месяца на Javascript</title>
</head>
<body>
<div>Скидка на апельсины до <span class="lastday"></span></div>
<div>Скидка на лимоны до <span class="lastday"></span></div>
<script type="text/javascript">
var date = new Date();
var lastDayDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);
var lastDay = lastDayDate.toLocaleString('ru', {day: 'numeric'});
var monthеs = ['ЯНВАРЯ','ФЕВРАЛЯ','МАРТА', 'АПРЕЛЯ','МАЯ','ИЮНЯ','ИЮЛЯ', 'АВГУСТА', 'СЕНТЯБРЯ', 'ОКТЯБРЯ', 'НОЯБРЯ', 'ДЕКАБРЯ'];
var result = lastDay+' '+monthеs[date.getMonth()];
var resultyear = lastDay+' '+monthеs[date.getMonth()]+' '+date.getFullYear();
var el =document.getElementsByClassName("lastday"); // Find the elements
for(var i = 0; i < el.length; i++){
el[i].innerText=result; // write text
}
// document.write(result);
// document.write('<br>');
// document.write(resultyear);
</script>
</body>
</html>
В данном материале рассмотрим, как сделать склонение окончаний при помощи Javascript. Возьмите готовую функцию решающую задачу со склонениями и посмотрите варианты её применения.
Допустим нужно выделить текущий пункт меню отдельным стилем. Иногда, это сделать просто невозможно (в случае Ajax) или сложно из-за структуры меню и тут нам на помощь приходит JavaScript, а точнее jQuery
Раннее в JavaScript, когда почти для всего нужна была специальная функция, потому что браузеры реализовывали по своему не только новые, но и базовые функции, такие как addEventListener и attachEvent. Времена изменились, но есть несколько функций, которые каждый разработчик должен иметь в своем арсенале, чтобы повысить производительность работы.