【发布时间】:2018-10-19 15:26:04
【问题描述】:
我有 2 个日期:开始日期和结束日期。结束日期总是比开始日期小一天。因此,如果我的开始日期是 19 日,那么结束日期将是下个月的 18 日。
我正在尝试创建两个日期之间的天数数组。 (每个月的19号到18号,然后18号到18号计算差额)
2018 年 8 月 19 日 - 2018 年 9 月 18 日 = 30 天
2018 年 9 月 18 日 - 2019 年 10 月 18 日 = 30 天
10/18/2018 - 11/18/2018 = 31 天
数组 = [30,30,31]
我正在使用以下代码来计算日期之间的天数差异。
function daysBetweenArrears (date1, date2){
date1.setDate(date1.getDate() );
date2.setDate(date2.getDate() - 1);
var Diff = Math.abs(date2.getTime() - date1.getTime());
var TimeDifference = Math.round(Diff / (1000 * 3600 * 24));
return TimeDifference;
}
以下创建数组的代码
if (document.getElementById("endDate"))
y = document.getElementById("endDate").value;
if (document.getElementById("startDate"))
z = document.getElementById("startDate").value;
var dateArr = getDateArray(z, y);
var dayCountArr = "";
var b = [];
for (var x = 0; x < dateArr.length-1; x++)
{
dayCountArr += daysBetweenArrears(dateArr[x], dateArr[x+1], ",");
b.push(daysBetweenArrears(dateArr[x], dateArr[x+1]));
}
问题是当我将日期设置如下时,它给了我不正确的输出。问题在于,每当它进入下个月时,它都会错误地设置日期。我不确定我在这里做错了什么。任何帮助是极大的赞赏。谢谢你。
date2.setDate(date2.getDate() - 1);
【问题讨论】:
-
您的示例日期令人困惑,因为它们没有按照您所说的进行。有些日期相隔一年以上。
-
@Herohtar 他们相差一年怎么办?它只增加了 3 个月。
-
再看看。你有
8/19/2018 - 9/18/2019等。年代不一样。 -
@Herohtar 哦,谢谢。我刚刚解决了这个问题。
标签: javascript