16. Date对象

文章并非包含Date对象的全部用法,如果要看全部用法可以看一下手册 Date - JavaScript | MDN

目录

1 创建Date对象

2  获取类方法

2.1  常用的

2.1.1  返回对象是几号 getDate()

2.1.2  返回对象是星期几 getDay()

2.1.3  返回对象是哪一年 getFullYear()

2.1.4  返回对象的 小时 信息 getHours()

2.1.5  返回对象的 分钟 信息 getMinutes()

2.1.6  返回对象的 毫秒 信息 getMilliseconds()

2.1.7  返回对象 月 信息 getMonth()

2.1.8  返回对象 秒 信息 getSeconds()

2.1.9  返回本地时间自1970年开始数的毫秒数 getTime()

2.1.10  获取时间戳 Date.now()

2.2  不常用的

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()

2.2.11  返回对象原始值 valueOf()

3  设置类方法

3.1  常用的

3.1.1  设置对象 日期 信息 setDate()

3.1.2  设置对象的 年 信息 setFullYear()

3.1.3  设置对象的 小时 信息 setHours()

3.1.4  设置对象的 毫秒 信息 setMilliseconds()

3.1.5  设置对象的 分钟 信息 setMinutes()

3.1.6  设置对象的 月 信息 setMonth()

3.1.7  设置对象的 秒 信息 setSeconds()

3.1.8  以1970毫秒方式设置对象 setTime()

3.2  不常用的

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  转换类方法

4.1  将对象 日 之前的信息转换为字符串 toDateString()

4.2  将对象转换为ISO标准字符串 toISOString()

4.3  将对象转换为JSON格式字符串 toJSON()

4.4  年月日部分转换成字符串 toLocaleDateString()

4.5  时间部分转换成字符串 toLocaleTimeString()

4.6  年月日与时间部分转换为字符串 toLocaleString()

4.7  将对象转换为字符串类型 toString()

4.8  将时间与时区部分转换为字符串 toTimeString()

4.9  先转换为世界时间再转换为字符串 toUTCString()

5  利用Date对象格式化时间字符串


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()

与其他获取时间戳的结果相同

毫秒数是独一无二的,我们后面可以用它的唯一性配合一些其他的操作

我们有时需要算出两个时间戳之间相差 多少天多少小时多少分钟多少秒,它是这么做的

  1. 得到两个时间戳的差值a
  2. 天数 = a/1000/60/60/24
  3. 小时 = a/1000/60/60%24
  4. 分钟 = a/1000/60%60
  5. 秒 = 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}`
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值