我在javascript中是noobie,并且一直在为这个主题实现正确的代码而遇到麻烦。我已经尝试检查您网站和其他人的现有论坛问题,但我总是最终得到一个破损的代码。基本上,我需要DueInDays输入文本来显示两个字段中任何一个字段的DueDate和AssignDate onChange之间的差异。下面是我试过的最后一个代码。
function diffrenceindays() {
var startdate = GetDateValue(AssignDate);
var Enddate = GetDateValue(DueDate);
var oneday = 1000 * 60 * 60 * 24;
var differenceInDays = ((Enddate - startdate) / oneday);
if (differenceInDays < 0) {
alert(" date cannot be less then start date");
}
alert(" diffrence in days " + differenceInDays);
}
function GetDateValue(field) {
var year = field.getFullYear();
var month = field.getMonth();
var day = field.getDate();
dateOnly = new Date(year, month, day);
return dateOnly;
}
&#13;
<form>
<label>Due Date
<input type="text" class="DatePicker" name="DueDate" id="DueDate" value="" size="32" onchange="diffrenceindays();" />
</label>
<label>Assign Date
<input type="text" class="DatePicker" name="AssignDate" id="AssignDate" value="" size="32" onchange="diffrenceindays();" />
</label>
<label>Due in Days
<input type="text" id="DueInDays" />
</label>
</form>
&#13;
答案 0 :(得分:0)
开始日期和结束日期是日期对象。如果要比较它们的相对时间,则应使用getTime方法 即。
function diffrenceInDays(date1,date2) {
var startdate = date1.getTime();
var enddate = date2.getTime();
var oneday = 1000 * 60 * 60 * 24;
var differenceInDays = ((enddate - startdate) / oneday);
if (differenceInDays < 0) {
alert(" date cannot be less then start date");
}
alert(" diffrence in days " + Math.floor(differenceInDays));
}
您应该将日期传递给函数,而不是在函数中找到它们。
你还应该阅读epascarello的评论。