下面是“JavaScript中一些奇葩的日期换算方法总结”的完整攻略:
JavaScript中一些奇葩的日期换算方法总结
本文总结了JavaScript中一些奇葩的日期换算方法,包括闰年判断、日期比较、日期计算等。
闰年判断
判断一个年份是否为闰年是常见的需求。以下是两种判断方法:
方法一:用取模运算符
闰年的判断标准:
- 能够被4整除,但不能被100整除,或者
- 能够被400整除
代码示例:
function isLeapYear(year) {
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}
// 测试
console.log(isLeapYear(2000)); // true
console.log(isLeapYear(2004)); // true
console.log(isLeapYear(1900)); // false
方法二:用Date对象
利用JavaScript内置的Date对象,可以创建指定年份的2月29日,然后判断该日期是否是2月29日。
代码示例:
function isLeapYear(year) {
var d = new Date(year, 1, 29);
return d.getDate() === 29;
}
// 测试
console.log(isLeapYear(2000)); // true
console.log(isLeapYear(2004)); // true
console.log(isLeapYear(1900)); // false
日期比较
JavaScript内置的Date对象提供了比较日期的方法,但有时候需要自定义比较方式。以下是一种自定义的日期比较方法:
比较年月日的大小
可以将日期转换为“年月日”格式,然后比较大小。这里假设日期格式为YYYY-MM-DD。
代码示例:
function compareDate(date1, date2) {
var d1 = new Date(date1.replace(/-/g, '/')).getTime(),
d2 = new Date(date2.replace(/-/g, '/')).getTime();
return d1 > d2 ? 1 : d1 < d2 ? -1 : 0;
}
// 测试
console.log(compareDate('2021-07-01', '2021-07-03')); // -1
console.log(compareDate('2021-07-01', '2021-06-30')); // 1
console.log(compareDate('2021-07-01', '2021-07-01')); // 0
日期计算
日期计算也是开发中经常遇到的需求。JavaScript为日期计算提供了便利的方法。
加减天数
可以使用Date对象的setDate方法来加减天数。
代码示例:
function addDays(date, days) {
var d = new Date(date);
d.setDate(d.getDate() + days);
return d.toLocaleDateString();
}
// 测试
console.log(addDays('2021-07-01', 10)); // "2021-07-11"
console.log(addDays('2021-07-01', -10)); // "2021-06-21"
加减月数
可以使用Date对象的setMonth方法来加减月数。需要注意的是,setMonth方法中的月份参数是0-based的,即0表示1月。
代码示例:
function addMonths(date, months) {
var d = new Date(date);
d.setMonth(d.getMonth() + months);
return d.toLocaleDateString();
}
// 测试
console.log(addMonths('2021-07-01', 2)); // "2021-09-01"
console.log(addMonths('2021-07-01', -2)); // "2021-05-01"
总结
本文总结了JavaScript中一些奇葩的日期换算方法,包括闰年判断、日期比较、日期计算等。这些方法虽然看起来有些奇怪,但在特定的场景下可能会派上用场。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript中一些奇葩的日期换算方法总结 - Python技术站