Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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日期_Javascript_Date - Fatal编程技术网

返回错误值的Javascript日期

返回错误值的Javascript日期,javascript,date,Javascript,Date,我对Java脚本还不熟悉,在这里我简直是疯了。我想要一个简单的日期计算器,当用户从下拉菜单更改日期框或持续时间时,它会自动更新。我已经研究了几种方法,并找到了一种非常简单的方法,如下所示 如果我有'var interval=4;'作为固定值,间隔是用户输入日期之后的持续时间。但是,如果我将该行更改为“var interval=number;”从选择菜单输入的持续时间,它给了我各种各样的疯狂的日期,它们明显地在间隔之后,我不知道为什么 有人能帮忙吗?提前谢谢 <script type="te

我对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>

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

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

任何一个都会起作用;这取决于你

如果不执行该转换,则添加步骤如下:

    expDate.setDate(startDate.getDate() + interval);
将作为字符串连接执行

var number = parseInt( document.getElementById('days').value, 10 );
    expDate.setDate(startDate.getDate() + interval);