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,欢迎下载。

date_helper.zip

posted @ 2011-10-27 12:21  tokeep  阅读(239)  评论(0编辑  收藏  举报