通过实例解析javascript Date对象属性及方法
日常生活中,各种形式的时间字符到处都是。时间观念的产生,时间单位、计时工具的发明,给人类带来的变化实在一言难尽。今天就来谈谈日期那些事儿。一起来看看JavaScript中的日期对象Date。
获取月份天数
//获取月份天数
functiongetMonthDayCount(year,month){
returnnewDate(year,month,0).getDate();
}
console.log(getMonthDayCount(2017,10));//31
Date第三个参数的本质跟setDate是一样的。
因为date为0时自动退到上个月的最后一天,所以这里月份也不需要减,正好的。
获取所有月份天数
functiongetAllMonthDayCount(year){
vardays=[31,newDate(year,2,0).getDate(),31,30,31,30,31,31,30,31,30,31];
returndays;
}
console.log(getAllMonthDayCount(2016));//[31,29,31,30,31,30,31,31,30,31,30,31]
这个算是上面的延伸,不多解释。
是否是闰年
functionisLeapYear(year){
return(year%4==0)&&(year%100!=0||year%400==0);
}
这是网上的web前端开发里相关代码,相信大多数人都用。但其实你真的理解或者能记住么?光是html和css就足够多记的了
functionisLeapYear(year){
returnnewDate(year,2,0).getDate()===29;
}
console.log([
isLeapYear(2000),
isLeapYear(2016),
isLeapYear(2017),
isLeapYear(2018)
]);//[true,true,false,false]
这样看,是不是就非常简单容易理解了。
而且都不需要记,是不是想忘都忘不了?
天数加减操作
之前看到有人用相对秒数在计算几天前或几天后,甚至还在算跨月,跨年的情况。
其实直接setDate就好了,自动处理跨月,跨年的情况。
//10天后是几月几号
vardt=newDate('2016-12-25');
dt.setDate(dt.getDate()+10);
console.log(dt.toLocaleDateString());//2017/1/4
//10天前是几月几号
vardt=newDate('2017-01-04');
dt.setDate(dt.getDate()-10);
console.log(dt.toLocaleDateString());//2016/12/25
下面我将JavaScriptDate对象的对象和方法总结成一个表,让大家参考,也可以关注javascript参考手册。
Date对象属性
| 属性 | 描述 |
|---|---|
| constructor | 返回对创建此对象的Date函数的引用。 |
| prototype | 使您有能力向对象添加属性和方法。 |
Date对象方法
| 方法 | 描述 |
|---|---|
| Date() | 返回当日的日期和时间。 |
| getDate() | 从 Date对象返回一个月中的某一天(1~31)。 |
| getDay() | 从Date对象返回一周中的某一天(0~6)。 |
| getMonth() | 从Date对象返回月份(0~11)。 |
| getFullYear() | 从Date对象以四位数字返回年份。 |
| getYear() | 请使用getFullYear()方法代替。 |
| getHours() | 返回Date对象的小时(0~23)。 |
| getMinutes() | 返回Date对象的分钟(0~59)。 |
| getSeconds() | 返回Date对象的秒数(0~59)。 |
| etMilliseconds() | 返回Date对象的毫秒(0~999)。 |
| getTime() | 返回1970年1月1日至今的毫秒数。 |
| getTimezoneOffset() | 返回本地时间与格林威治标准时间(GMT)的分钟差。 |
| getUTCDate() | 根据世界时从Date对象返回月中的一天(1~31)。 |
| getUTCDay() | 根据世界时从Date对象返回周中的一天(0~6)。 |
| getUTCMonth() | 根据世界时从Date对象返回月份(0~11)。 |
| getUTCFullYear() | 根据世界时从Date对象返回四位数的年份。 |
| getUTCHours() | 根据世界时返回Date对象的小时(0~23)。 |
| getUTCMinutes() | 根据世界时返回Date对象的分钟(0~59)。 |
| getUTCSeconds() | 根据世界时返回Date对象的秒钟(0~59)。 |
| getUTCMilliseconds() | 根据世界时返回Date对象的毫秒(0~999)。 |
| parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
| setDate() | 设置Date对象中月的某一天(1~31)。 |
| setMonth() | 设置Date对象中月份(0~11)。 |
| setFullYear() | 设置Date对象中的年份(四位数字)。 |
| setYear() | 请使用setFullYear()方法代替。 |
| setHours() | 设置Date对象中的小时(0~23)。 |
| setMinutes() | 设置Date对象中的分钟(0~59)。 |
| setSeconds() | 设置Date对象中的秒钟(0~59)。 |
| setMilliseconds() | 设置Date对象中的毫秒(0~999)。 |
| setTime() | 以毫秒设置Date对象。 |
| setUTCDate() | 根据世界时设置Date对象中月份的一天(1~31)。 |
| setUTCMonth() | 根据世界时设置Date对象中的月份(0~11)。 |
| setUTCFullYear() | 根据世界时设置Date对象中的年份(四位数字)。 |
| setUTCHours() | 根据世界时设置Date对象中的小时(0~23)。 |
| setUTCMinutes() | 根据世界时设置Date对象中的分钟(0~59)。 |
| setUTCSeconds() | 根据世界时设置Date对象中的秒钟(0~59)。 |
| setUTCMilliseconds() | 根据世界时设置Date对象中的毫秒(0~999)。 |
| toSource() | 返回该对象的源代码。 |
| toString() | 把Date对象转换为字符串。 |
| toTimeString() | 把Date对象的时间部分转换为字符串。 |
| toDateString() | 把Date对象的日期部分转换为字符串。 |
| toGMTString() | 请使用toUTCString()方法代替。 |
| toUTCString() | 根据世界时,把Date对象转换为字符串。 |
| toLocaleString() | 根据本地时间格式,把Date对象转换为字符串。 |
| toLocaleTimeString() | 根据本地时间格式,把Date对象的时间部分转换为字符串。 |
| toLocaleDateString() | 根据本地时间格式,把Date对象的日期部分转换为字符串。 |
| UTC() | 根据世界时返回1970年1月1日到指定日期的毫秒数。 |
| valueOf() | 返回Date对象的原始值。 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。