JavaScript获取指定月份天数的两种实现方式与兼容性说明

作者:异步漫步

时间:2026-10-22

浏览:155

本文介绍利用JavaScript Date构造函数传入0号日期自动回退至上月末的特性,以获取指定月份的天数。该方法代码简洁,但需注意Chrome等部分浏览器存在兼容性问题返回NaN。文章提供了标准兼容的替代实现方案,确保在不同环境下均能准确获取年月的总天数。

文章目录

利用Date构造函数获取月份天数的原理

在JavaScript中,使用new Date("xxxx/xx/xx")构造函数处理日期时存在一个便捷特性:若传入的日期为"xxxx/xx/0"(即0号),返回的结果将是"xx"月的前一个月的最后一天(注:"xx"月的最大取值限制为69,此为额外信息)。例如,传入"1999/13/0"会返回"1998/12/31"。尤为实用的是,当传入"xxxx/3/0"时,系统会自动判断当年是否为闰年,并返回xxxx年2月的最后一天(28天或29天),无需手动进行闰年判断,极大简化了逻辑。因此,若需获取选定年份和月份的天数,只需


var d=new Date("选择年/选择月+1/0");
alert(d.getDate());

参考以下使用JavaScript编写的获取某年某月天数的getDaysInOneMonth(year, month)方法实现:

JavaScript获取月份天数的实现代码


function getDaysInOneMonth(year, month){ 
 month = parseInt(month,10)+1; 
 var d= new Date(year+"/"+month+"/0"); 
 return d.getDate(); 
 } 

注意:经测试发现,Chrome浏览器(谷歌浏览器)对该特性支持存在差异,返回结果为NAN。这涉及兼容性问题。

建议尝试其他方法以获取某个月的总天数。

修改实现方式如下即可解决兼容性问题:

兼容性问题与替代方案


function getDaysInOneMonth(year, month){ 
 month = parseInt(month, 10); 
 var d= new Date(year, month, 0); 
 return d.getDate(); 
} 

总结

以上所述是小编给大家介绍的Javascript获取某个月的天数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章