Я пытаюсь установить дату в будущем на основе другого условия, а затем преобразовать дату в строку, используя метод ISOString. Это пример кода;
<input type="text" name="unknown" id="dater" />
<p id="show"></p>
<button id="but">Show Date</button>
Имея скрипт:
var text = document.getElementById("dater");
var date = new Date();
var n = date.setDate(date.getDate() + 12);
var x = date.toISOString()
var y = x.slice(0, -14);
document.getElementById("show").innerHTML = y;
Результат:
2018-05-27
Вывод основан на сегодняшней дате "2018-05-15". Теперь я хочу установить другую дату на основе разных условий. Я попробовал следующее:
var pres = document.getElementById("but").addEventListener("click", now)
function now() {
var text = document.getElementById("dater");
var date = new Date();
var n = date.setDate(date.getDate() + 12);
var x = date.toISOString()
var y = x.slice(0, -14);
if(text.value == 5) { n = date.setDate(date.getDate() + 15)
} else if(text.value == 12) { n = date.setDate(date.getDate() + 22)
} else { n = date.setDate(date.getDate() + 3) }
document.getElementById("show").innerHTML = y;
}
если я ввожу 5, 12 или 3 в текстовое поле, при нажатии кнопки ничего не происходит. Он просто возвращает ту же дату "2018-05-27". Однако, если я скажу
document.getElementById("show").innerHTML = n;
или
document.getElementById("show").innerHTML = n.toISOString();
Возвращает дату в миллисекундах.