日常生活中,各种形式的时间字符到处都是。时间观念的产生,时间单位、计时工具的发明,给人类带来的变化实在一言难尽。今天就来谈谈日期那些事儿。一起来看看 JavaScript 中的日期对象 Date。
获取月份天数
// 获取月份天数
function getMonthDayCount(year, month) {
return new Date(year, month, 0).getDate();
}
console.log(getMonthDayCount(2017, 10)); // 31
Date 第三个参数的本质跟 setDate 是一样的。
因为 date 为 0 时自动退到上个月的最后一天,所以这里月份也不需要减,正好的。
获取所有月份天数
function getAllMonthDayCount(year) {
var days = [31, new Date(year, 2, 0).getDate(), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
return days;
}
console.log(getAllMonthDayCount(2016));// [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
这个算是上面的延伸,不多解释。
是否是闰年
function isLeapYear(year) {
return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
}
这是网上的web前端开发里相关代码,相信大多数人都用。但其实你真的理解或者能记住么?光是html和css就足够多记的了
function isLeapYear(year) {
return new Date(year, 2, 0).getDate() === 29;
}
console.log([
isLeapYear(2000),
isLeapYear(2016),
isLeapYear(2017),
isLeapYear(2018)
]); // [ true, true, false, false ]
这样看,是不是就非常简单容易理解了。
而且都不需要记,是不是想忘都忘不了?
天数加减操作
之前看到有人用相对秒数在计算几天前或几天后,甚至还在算跨月,跨年的情况。
其实直接 setDate 就好了,自动处理 跨月,跨年 的情况。
// 10天后是几月几号
var dt = new Date('2016-12-25');
dt.setDate(dt.getDate() + 10);
console.log(dt.toLocaleDateString()); // 2017/1/4
// 10天前是几月几号
var dt = new Date('2017-01-04');
dt.setDate(dt.getDate() - 10);
console.log(dt.toLocaleDateString()); // 2016/12/25
下面我将JavaScript Date 对象的对象和方法总结成一个表,让大家参考,也可以关注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 对象的原始值。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。