Меню ×
Вывод последнего дня текущего месяца на Javascript

Вывод последнего дня текущего месяца на Javascript

Попалась интересная задачка, на баннере нужно было выводить «Акция действует до (тут последний день месяца)», решил сделать это на 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();
	

Полный код Вывод последнего дня текущего месяца на Javascript

	
<!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>
	

Похожие материалы

Promise (обычно их так и называют «промисы») – предоставляют удобный способ организации асинхронного кода. В современном JavaScript промисы часто используются в том числе и неявно, при помощи генераторов.

Попалась интересная задачка, на баннере нужно было выводить «Акция действует до (тут последний день месяца)», решил сделать это на Javascript, ну чтоб не лазить каждый раз в код для правок, вот что получилось

Youtube несколько видео на странице. Как сделать остановку предыдущего видео, при запуске следующего? На сайте расположено на одной странице три видео. При включении нужно чтобы другое видео, если запущено , останавливалось. Как это реализовать?

Заявка на создание сайта / Продвижение сайта

Документы на создание сайта

Изучите наше коммерческое предложение, заполните БРИФ и отправьте его на почту maxidebox@list.ru. Изучив все пожелания из БРИФ-а, обратным ответом оповестим Вас по стоимости разработке, ответим на вопросы.

КП на создание сайта Коммерческое предложение на созданеи сайта
Мы берем на себя ответственность за все стадии работы и полностью избавляем клиентов от забот и необходимости вникать в тонкости.

Скачать БРИФ (акета) на создание сайта Скачать БРИФ (акета) на создание сайта
Зополните у БРИФ-а все необходимые поля. Сделайте краткое описание к каждому из пунктов анкеты, привидите примеры в соответсвующий пунктах - это позволит лучше понять Ваши ожидания и требования к сайту

Закажите сайт по телефону: +7 (929) 701 21 71

наверх