我想计算start_date和end_date之间的总天数。这里我有两个文本框,一个是end_date的文本框,另一个是start_date和end_date之间的总天数。我想要做的是当用户点击按钮时,end_date文本框中填充了结束日期和总天数文本框填充了总数天 。任何人都可以帮我吗?
这是代码。
<html>
<head>
<script>
$(document).ready(function () {
$('#txtDate').datepicker();
$('#follow_Date').getDate();
$('#dura').getValue();
$('#mark').getValue();
});
function getdate() {
var sd = document.getElementById('txtDate').value;
var d = document.getElementById('dura').value;
var m = document.getElementById('mark').value;
var date = new Date(sd);
var newdate = new Date(date);
var duration = parseInt(d);
var marking = parseInt(m);
if ( marking === 1 )
{
newdate.setDate(newdate.getDate());
}
else if ( marking === 2 )
{
newdate.setDate(newdate.getDate() + duration);
}
else if ( marking === 3 )
{
newdate.setDate((newdate.getDate() + duration)+1);
}
var dd = newdate.getDate();
var mm = newdate.getMonth()+1;
var y = newdate.getFullYear();
var someFormattedDate = y + '-' + mm + '-' + dd;
document.getElementById('follow_date').value = someFormattedDate;
}
function getdays()
{
var days = (follow_date.setdate(follow_date.getDate()) - newdate.setDate(newdate.getDate()));
}
</script>
</head>
<body>
<p>Date:
<input id="txtDate" type="text" />
</p>
<p>Duration :
<input id="dura" type="text" />
</p>
<p>Marks:
<input id ="mark" type = "text"/>
</p>
<p>
<input type="button" onclick="getdate()" value="Fill Follow Date" />
</p>
<p>End Date:
<input id="follow_date" type="text" onkeydown="getdate()" />
</p>
<p>Days :
<input id="days" type="text" onkeydown="getdays()" />
</p>
</body>
</html>
答案 0 :(得分:0)
我不确定最后你想做什么,但你的代码中有很多错误。
您的getdays
函数无法访问getdate
函数中的变量,例如follow_date
和newdate
,您需要定义全局变量或将它们作为参数传递给函数才能使用它们。
此外,您将jQuery函数与纯JavaScript混合(如果您甚至包含jQuery)。
这是一个小小的想法,你需要做什么来显示另一个变量作为输入值,请参阅注释并添加两行:
function getdate() {
var sd = document.getElementById('txtDate').value;
var d = document.getElementById('dura').value;
var m = document.getElementById('mark').value;
var date = new Date(sd);
var newdate = new Date(date);
var duration = parseInt(d);
var marking = parseInt(m);
if ( marking === 1 )
{
newdate.setDate(newdate.getDate());
}
else if ( marking === 2 )
{
newdate.setDate(newdate.getDate() + duration);
}
else if ( marking === 3 )
{
newdate.setDate((newdate.getDate() + duration)+1);
}
var dd = newdate.getDate();
var mm = newdate.getMonth()+1;
var y = newdate.getFullYear();
var someFormattedDate = y + '-' + mm + '-' + dd;
document.getElementById('follow_date').value = someFormattedDate;
// added this two lines, that will set the days to your days input element
var days = (follow_date.setdate(follow_date.getDate()) - newdate.setDate(newdate.getDate()));
document.getElementById('days').value = days;
}
但是如上所述,代码可能存在更多问题,我建议您阅读一本优秀的JavaScript指南,如果您想更好地解读它,首先要从简单的事情开始,重写代码是没有意义的,所以它只是工作我猜