gpt4 book ai didi

JavaScript 日期返回错误值

转载 作者:行者123 更新时间:2023-11-28 08:25:35 25 4
gpt4 key购买 nike

我是 Java 脚本新手,我真的很抓狂。我想要一个简单的日期计算器,当用户更改日期框或下拉菜单中的持续时间时,它会自行更新。我研究了几种方法来做到这一点,并发现了一种看起来非常简单的方法,如下所示。

如果我有“var Interval = 4;”,它就可以完美工作。作为固定值(间隔是用户输入日期之后的持续时间)。但是,如果我将该行更改为 'var Interval = number;' (从选择菜单输入的持续时间),它给了我各种疯狂的日期(明显在间隔之后的日期),我不知道为什么

有人可以帮忙吗?提前致谢

<script type="text/javascript">
function setExpDate(){

var formDate = document.getElementById('startDate').value;
var number = document.getElementById('days').value;

// set number of days to add
var interval = 4;
var startDate = new Date(Date.parse(formDate));
var expDate = startDate;
expDate.setDate(startDate.getDate() + interval);
document.getElementById('total').innerHTML = expDate;
document.getElementById('daysdays').innerHTML = interval;
};
</script>
</head>

<body>

<input type="text" size="10" maxlength="10" id="startDate" name="startDate" onblur="setExpDate(this.value)">

<select name="days" id="days" onchange="setExpDate(this.value)">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>

 <div id="total"></div> <br/><div id="daysdays"></div>
</body>
</html>

最佳答案

表单字段的值始终是字符串。您必须强制它们为数字:

var number = +document.getElementById('days').value;

var number = parseInt( document.getElementById('days').value, 10 );

(任何一个都可以;这取决于您。)

如果您不执行该转换,则此处的添加步骤:

    expDate.setDate(startDate.getDate() + interval);

将作为字符串连接进行。

关于JavaScript 日期返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com