Как мне установить дату ISOString для разных условий - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь установить дату в будущем на основе другого условия, а затем преобразовать дату в строку, используя метод 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();

Возвращает дату в миллисекундах.

1 Ответ

0 голосов
/ 15 мая 2018

Я думаю, этот код поможет вам. Вы не конвертируете свою переменную в объект Date.

    window.onload = function () {
        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 = new Date(n).toISOString();

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...