js计算两个日期相差几年
时间: 2023-09-04 21:15:18 浏览: 73
以下是计算两个日期相差几年的JavaScript代码示例:
```javascript
function getYearDiff(date1, date2) {
var year1 = date1.getFullYear();
var year2 = date2.getFullYear();
var diff = year2 - year1;
if (date1 > new Date(year2, date2.getMonth(), date2.getDate())) {
diff--;
}
return diff;
}
var date1 = new Date('2010-01-01');
var date2 = new Date('2020-06-30');
var diff = getYearDiff(date1, date2);
console.log(diff); // 输出:10
```
该函数接收两个日期对象作为参数,计算它们的年份差值并返回。算法如下:
1. 分别获取两个日期的年份 year1 和 year2。
2. 用 year2 减去 year1,得到初始差值 diff。
3. 如果 date1 的月份大于 date2 的月份,或者 date1 的月份等于 date2 的月份但是 date1 的日期大于 date2 的日期,说明 date1 的年龄还没过完,因此需要将 diff 减去 1。
4. 返回 diff。
注意,这里假设 date1 小于或等于 date2。如果需要更严谨的判断,可以加入相应的逻辑。
相关问题
js 计算两个日期之间 相差几年几月
可以通过 JavaScript 中的 Date 对象来计算两个日期之间相差的年份和月份。
以下是一个示例代码:
```js
function diffDate(date1, date2) {
// 获取年月日
var year1 = date1.getFullYear();
var month1 = date1.getMonth() + 1;
var day1 = date1.getDate();
var year2 = date2.getFullYear();
var month2 = date2.getMonth() + 1;
var day2 = date2.getDate();
// 计算相差年数
var diffYear = year2 - year1;
if (month2 < month1 || (month2 == month1 && day2 < day1)) {
diffYear--;
}
// 计算相差月数
var diffMonth = (month2 - month1 + 12) % 12;
if (day2 < day1) {
diffMonth--;
}
return [diffYear, diffMonth];
}
var date1 = new Date('2010-01-01');
var date2 = new Date('2022-05-31');
var diff = diffDate(date1, date2);
console.log(diff[0] + '年' + diff[1] + '月');
```
其中,`diffDate` 函数接受两个 Date 对象作为参数,计算出两个日期之间相差的年份和月份,并返回一个数组。在示例中,我们构造了两个日期对象 `date1` 和 `date2`,并将它们传入 `diffDate` 函数中计算相差的年份和月份。最后,将计算结果打印输出。
js计算两个日期相差的年和月
以下是计算两个日期相差的年和月的JavaScript代码:
```javascript
function diffYearsAndMonths(date1, date2) {
var diff = {};
var months = date2.getMonth() - date1.getMonth();
var years = date2.getFullYear() - date1.getFullYear();
if (months < 0) {
months += 12;
years -= 1;
}
diff.years = years;
diff.months = months;
return diff;
}
```
使用示例:
```javascript
var date1 = new Date("2020-01-01");
var date2 = new Date("2022-05-15");
var diff = diffYearsAndMonths(date1, date2);
console.log(diff.years + " years " + diff.months + " months");
// 输出:2 years 4 months
```
该函数接受两个日期对象作为参数,计算它们之间的年数和月数差,并返回一个包含这两个值的对象。