Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不同条件下将日期设置为ISOString_Javascript_Html - Fatal编程技术网

Javascript 如何在不同条件下将日期设置为ISOString

Javascript 如何在不同条件下将日期设置为ISOString,javascript,html,Javascript,Html,我试图在将来根据不同的条件设置一个日期,然后使用ISOString方法将日期转换为字符串。这是代码的一个示例 <input type="text" name="unknown" id="dater" /> <p id="show"></p> <button id="but">Show Date</button> 结果: 2018-05-27 输出基于今天的日期“2018-05-15”。现在我想根据不同的条件设置不同的日期。我尝试

我试图在将来根据不同的条件设置一个日期,然后使用ISOString方法将日期转换为字符串。这是代码的一个示例

<input type="text" name="unknown" id="dater" />

<p id="show"></p>

<button id="but">Show Date</button>
结果:

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; 


它以毫秒为单位返回日期。

我认为这段代码会对您有所帮助。您没有将变量转换为日期对象

    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();

    }

当您使用
if
语句时,您没有使用
n
变量执行任何操作,那么设置它的值是多少?您还在
if
语句之前设置变量
y
。当您更改用于创建它的日期时,它的值不会自动更改。当您说我没有对
n
变量做任何事情时,您的意思是什么。if语句声明,如果输入为5,则n应该是设置为增加15的日期。所以我真的不明白这意味着什么。你正在分配给
n
,但当我第一次发表评论时,你没有用这个值做任何事情。从那以后你就改变了问题。现在你不用
y
x
变量做任何事情。噢!对不起,我没有很快得到你的评论。我必须纠正我的错误,这样我就不会得到错误或令人困惑的答案
document.getElementById("show").innerHTML = n.toISOString();
    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();

    }