文章并非包含Date对象的全部用法,如果要看全部用法可以看一下手册 Date - JavaScript | MDN
目录
2.1.5 返回对象的 分钟 信息 getMinutes()
2.1.6 返回对象的 毫秒 信息 getMilliseconds()
2.1.9 返回本地时间自1970年开始数的毫秒数 getTime()
2.2.1 返回本地时间与标准时间(GMT)的分钟差 getTimezoneOffset()
2.2.2 返回对象标准时间的 日 信息 getUTCDate()
2.2.3 返回对象标准时间的 星期几 信息 getUTCDay()
2.2.4 返回对象标准时间的 年 信息 getUTCFullYear()
2.2.5 返回对象标准时间的 小时 信息 getUTCHours()
2.2.6 返回对象标准时间的 毫秒 信息 getUTCMilliseconds()
2.2.7 返回对象标准时间的 月 信息 getUTCMonth()
2.2.8 返回对象标准时间的 秒 信息 getUTCSeconds()
2.2.9 返回1970年到指定本地日期的毫秒数 Date.parse()
2.2.10 返回世界时间自1970年开始数的毫秒数 Date.UTC()
3.1.2 设置对象的 年 信息 setFullYear()
3.1.4 设置对象的 毫秒 信息 setMilliseconds()
3.1.5 设置对象的 分钟 信息 setMinutes()
3.2.1 根据对象的世界时间设置 日 信息 setUTCDate()
3.2.2 根据对象的世界时间设置 年 信息 setUTCFullYear()
3.2.3 根据对象的世界时间设置 小时 信息 setUTCHours()
3.2.4 根据对象的世界时间设置 毫秒 信息 setUTCMilliseconds()
3.2.5 根据对象的世界时间设置 分钟 信息 setUTCMinutes()
3.2.6 根据对象的世界时间设置 月 信息 setUTCMonth()
3.2.7 根据对象的世界时间设置 秒 信息 setUTCSeconds()
4.1 将对象 日 之前的信息转换为字符串 toDateString()
4.2 将对象转换为ISO标准字符串 toISOString()
4.4 年月日部分转换成字符串 toLocaleDateString()
4.5 时间部分转换成字符串 toLocaleTimeString()
4.6 年月日与时间部分转换为字符串 toLocaleString()
4.8 将时间与时区部分转换为字符串 toTimeString()
4.9 先转换为世界时间再转换为字符串 toUTCString()
1 创建Date对象
Date对象只能通过Date构造函数创建,可以不给参数
也可以给这种时间字符串
时间字符串一般用这种形式
也可以给从1970年开始算的毫秒数(时间戳)
也可以按照 年,月,日,小时,分钟,秒,毫秒这样给。不需要全给,只要按顺序就行
这里注意如果用逗号的方式,返回的月份总会比你给的月份多一个月
- 因为你给0的时候系统判定为1月,所以看起来都会多一个
- 用时间字符串不会有这种问题
2 获取类方法
2.1 常用的
2.1.1 返回对象是几号 getDate()
2.1.2 返回对象是星期几 getDay()
- 如果是周日会返回0
如果想获取汉字的星期几可以使用索引的方式,比如
2.1.3 返回对象是哪一年 getFullYear()
2.1.4 返回对象的 小时 信息 getHours()
2.1.5 返回对象的 分钟 信息 getMinutes()
2.1.6 返回对象的 毫秒 信息 getMilliseconds()
2.1.7 返回对象 月 信息 getMonth()
- 这里返回的是3,其实指的是四月,因为JS中认定0是一月
2.1.8 返回对象 秒 信息 getSeconds()
2.1.9 返回本地时间自1970年开始数的毫秒数 getTime()
这个毫秒数被叫做时间戳
时间戳还可以这样获取
这个的原理是用valueOf进行加运算得到的
2.1.10 获取时间戳 Date.now()
与其他获取时间戳的结果相同
毫秒数是独一无二的,我们后面可以用它的唯一性配合一些其他的操作
我们有时需要算出两个时间戳之间相差 多少天多少小时多少分钟多少秒,它是这么做的
- 得到两个时间戳的差值a
- 天数 = a/1000/60/60/24
- 小时 = a/1000/60/60%24
- 分钟 = a/1000/60%60
- 秒 = a/1000/%60
如果加上月就不能再按这种方式了,因为每一个月的天数不一样,那种我们后面如果遇到再分析
2.2 不常用的
2.2.1 返回本地时间与标准时间(GMT)的分钟差 getTimezoneOffset()
2.2.2 返回对象标准时间的 日 信息 getUTCDate()
2.2.3 返回对象标准时间的 星期几 信息 getUTCDay()
2.2.4 返回对象标准时间的 年 信息 getUTCFullYear()
2.2.5 返回对象标准时间的 小时 信息 getUTCHours()
- 我当前是上午9点,由于差8个时区,所以差8个小时
2.2.6 返回对象标准时间的 毫秒 信息 getUTCMilliseconds()
2.2.7 返回对象标准时间的 月 信息 getUTCMonth()
- 这里也是因为有0的存在,所以月份会差一个月
2.2.8 返回对象标准时间的 秒 信息 getUTCSeconds()
2.2.9 返回1970年到指定本地日期的毫秒数 Date.parse()
只有时间字符串一个参数,这个参数是必填参数
2.2.10 返回世界时间自1970年开始数的毫秒数 Date.UTC()
2.2.11 返回对象原始值 valueOf()
有时会用它获取时间戳
3 设置类方法
如果我们同时要使用设置前与设置后两个对象,那么最好起不同的变量名
3.1 常用的
3.1.1 设置对象 日期 信息 setDate()
这里第一次打开页面的结果是这样的
刷新一下后会变成这样
所以我们设置的时候最好给不同的变量名
返回值是设置好的时间与1970年之间的毫秒数
3.1.2 设置对象的 年 信息 setFullYear()
3.1.3 设置对象的 小时 信息 setHours()
3.1.4 设置对象的 毫秒 信息 setMilliseconds()
毫秒信息设置区间为 0-999
3.1.5 设置对象的 分钟 信息 setMinutes()
3.1.6 设置对象的 月 信息 setMonth()
- 同样0代表1月
3.1.7 设置对象的 秒 信息 setSeconds()
3.1.8 以1970毫秒方式设置对象 setTime()
3.2 不常用的
3.2.1 根据对象的世界时间设置 日 信息 setUTCDate()
先转换为世界时间,后设置信息,设置之后再转换回来,等到设置小时那里我们可以看到与没有UTC方法的区别
3.2.2 根据对象的世界时间设置 年 信息 setUTCFullYear()
3.2.3 根据对象的世界时间设置 小时 信息 setUTCHours()
这里我设置的是1,由于差了8个小时,所以设置之后显示的是9
3.2.4 根据对象的世界时间设置 毫秒 信息 setUTCMilliseconds()
3.2.5 根据对象的世界时间设置 分钟 信息 setUTCMinutes()
3.2.6 根据对象的世界时间设置 月 信息 setUTCMonth()
3.2.7 根据对象的世界时间设置 秒 信息 setUTCSeconds()
4 转换类方法
4.1 将对象 日 之前的信息转换为字符串 toDateString()
4.2 将对象转换为ISO标准字符串 toISOString()
4.3 将对象转换为JSON格式字符串 toJSON()
- JSON格式与ISO格式相同
4.4 年月日部分转换成字符串 toLocaleDateString()
4.5 时间部分转换成字符串 toLocaleTimeString()
4.6 年月日与时间部分转换为字符串 toLocaleString()
4.7 将对象转换为字符串类型 toString()
4.8 将时间与时区部分转换为字符串 toTimeString()
4.9 先转换为世界时间再转换为字符串 toUTCString()
5 利用Date对象格式化时间字符串
function format_time(unformat_time) {
const dt = new Date(unformat_time)
const year = dt.getFullYear()
const month = (dt.getMonth() + 1) > 9 ? (dt.getMonth() + 1) : '0' + (dt.getMonth() + 1)
const day = (dt.getDate()) > 9 ? (dt.getDate()) : '0' + (dt.getDate())
const hour = (dt.getHours()) > 9 ? (dt.getHours()) : '0' + (dt.getHours())
const minute = (dt.getMinutes()) > 9 ? (dt.getMinutes()) : '0' + (dt.getMinutes())
const second = (dt.getSeconds()) > 9 ? (dt.getSeconds()) : '0' + (dt.getSeconds())
return `${year}-${month}-${day} ${hour}:${minute}:${second}`
}