Задать вопрос
ddimonn8080
@ddimonn8080

Почему в переменную не присваивается дата?

codepen.io/ddimonn8080/pen/akRvZP?editors=0010

Здравствуйте, как в переменную присвоить именно дату чтобы потом из неё достать дату на 3 дня позже и дату на три дня раньше?Без присвоения сначала уменьшил на 3, а чтобы увеличить на три прибавил 6.

так громоздко:

function setCustomDate() {

		function checkMonth() {
			if ( month === 0 ) {
				month = 'января';
			} else if ( month === 1 ) {
				month = 'февраля';
			} else if ( month === 2 ) {
				month = 'марта';
			} else if ( month === 3 ) {
				month = 'апреля';
			} else if ( month === 4 ) {
				month = 'мая';
			} else if ( month === 5 ) {
				month = 'июня';
			} else if ( month === 6 ) {
				month = 'июля';
			} else if ( month === 7 ) {
				month = 'августа';
			} else if ( month === 8 ) {
				month = 'сентября';
			} else if ( month === 9 ) {
				month = 'октября';
			} else if ( month === 10 ) {
				month = 'ноября';
			} else if ( month === 11 ) {
				month = 'декабря';
			}
		}

		var now = new Date(),
			datePrice = document.getElementById('datePrice'),
			datePromo = document.getElementById('datePromo');

		now.setDate( now.getDate() - 3 );

		var date = now.getDate();

		var month = now.getMonth();

		var year = now.getFullYear();

		checkMonth();

		var before = date + ' ' + month + ' ' + year;

		datePrice.innerHTML = before;

		now.setDate( now.getDate() + 6 );

		date = now.getDate();

		month = now.getMonth();

		year = now.getFullYear();

		checkMonth();

		var after = date + ' ' + month;

		datePromo.innerHTML = after;

	}

	setCustomDate();
  • Вопрос задан
  • 273 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Тут одних замечаний хватит на диссертацию.
Во первых по задаче :
stackoverflow.com/questions/563406/add-days-to-jav... - результат нехитрого поиска.

По замечаниям:
1)судя по названию,функция CheckMonth должна возвращать bool. А она лезет в окружение и меняет значение переменных. Про то как она реализована я лучше промолчу. что вам мешало использовать switch/case? как итог - переименовать и сделать так чтобы возвращала строку, а не проставляла ее значение в какой-то переменной окружения.
2) now должна быть now, а не 3 дня назад. Я вот только с комментарием понял что now.getDate() + 6 это 3 дня вперед, потому что сейчас now это 3 дня назад. Не экономьте объекты.
3) В одном методе у вас и получение данных и корректировки UI - это не корректно.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы