简体   繁体   English

如何针对不同条件将日期设置为 ISOString

[英]How to I set a date to ISOString for different conditions

I'm trying to set a date in future based on different condition and then convert the date into string using the ISOString method.我正在尝试根据不同的条件设置未来的日期,然后使用 ISOString 方法将日期转换为字符串。 This is an example of the code;这是代码示例;

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

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

<button id="but">Show Date</button>

Having the script:有脚本:

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;

Result:结果:

2018-05-27

The output is based on today's date which is "2018-05-15".输出基于今天的日期,即“2018-05-15”。 Now I want to set different date based on different conditions.现在我想根据不同的条件设置不同的日期。 I tried the following:我尝试了以下方法:

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;

 }

if i input 5, 12 or 3 in the text field, nothing happens when I click the button.如果我在文本字段中输入 5、12 或 3,单击按钮时不会发生任何事情。 It just returns the same date "2018-05-27".它只是返回相同的日期“2018-05-27”。 However, if i say但是,如果我说

document.getElementById("show").innerHTML = n; 

or或者

document.getElementById("show").innerHTML = n.toISOString();

It returns the date in milliseconds.它以毫秒为单位返回日期。

I think this code will help you.我认为这段代码会对你有所帮助。 you are not converting your variable in to Date object.您没有将变量转换为 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();

    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM