JavaScript中Date对象的几个扩展方法
在 JavaScript 中,Date 对象的方法远远不及其它语言多,很多常用的方法都没有提供,上次在做 Calendar 项目的时候,自己又添加了一些方法,今天整理了一下,写成了一个 dateHelper 对象,下次用的时候就不用再写了。
var dateHelper = { isLeapYear: function(year){ //是否为闰年 if ((year % 400 == 0) || (year % 100 != 0) && (year % 4 == 0)) { return true; } else { return false; } }, daysInMonth: function(year, mo){ //返回指定月份中的天数 if (mo == 2) { return this.isLeapYear() ? 29 : 28; } else { return (mo == 4 || mo == 6 || mo == 9 || mo == 11) ? 30 : 31; } }, dayOfFirstDateInMonth: function(year,mo){ //返回指定月份中第一天的星期数 var newDate = new Date(year, mo - 1); var day = newDate.getDay(); return day; }, getClientTimeZone : function(){ //返回客户端时区 var d = new Date(); return -d.getTimezoneOffset()/60; } }
这些方法都是比较常用的,包括判断是否为闰年,得到一个月的天数,得到客户端的时区设置,dayOfFirstDateInMonth 方法在 Calendar 项目中用来返回某个月的1号是星期几,以便生成日历。另外,用 JavaScript 来获取用户的时区设置并不是最稳妥的办法,至少在 windows 中,系统设置为某些时区时,JavaScript 的 getTimezoneOffset 方法并不能返回正确的值。有兴趣的同学可以试一试。
PS. 其中的参数mo(月份),是以1为起始月的。
更多的方法以后遇到了再陆续更新。
下面的链接中的文件包含了这段js代码和demo,欢迎下载。