JS Date()对象介绍
ヤッハロー、Kaiqisanすうう、一つふつうの学生プログラマである, 之前一直在为Date对象困扰,我对它的状态一直处于半懂不懂的状态,就是大致清楚,但是经常会面向百度编程。没错,这篇博客又是为了加深印象而写的。
一种特殊的对象,可以用来表示时间。
let date = new Date()
这样就可以获取当前的日期,返回一个对象
console.log(typeof date) // object
虽然它在显示上容易让人误解为是一个字符串就是了
Wed Aug 26 2020 12:37:55 GMT+0800 (中国标准时间)
如果您想要单纯地截取这里的内容的话,直接强制类型转换就行了
let date = new Date()
date = String(date)
/// 后面自由操作
上面讲的是Date对象最简易的用法,但是作为一个对象,它一定有它的属性和方法的。
老方法,直接看它的原型就可以了
let date = new Date()
console.log(date.__proto__)
然后,我们发现这个对象是非常特殊的,因为它没有一个固定的属性值是可以直接获取的,所以,使用for in方法也是毫无结果。全都是方法,好巧不巧,别的教程网页做了全部方法的汇总,我就直接拿过来咯!
方法名 | 用途 |
---|---|
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
getYear() | 已废弃。 请使用 getFullYear() 方法代替。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setTime() | setTime() 方法以毫秒设置 Date 对象。 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
setUTCSeconds() | setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。 |
setYear() | 已废弃。请使用 setFullYear() 方法代替。 |
toDateString() | 把 Date 对象的日期部分转换为字符串。 |
toGMTString() | 已废弃。请使用 toUTCString() 方法代替。 |
toISOString() | 使用 ISO 标准返回字符串的日期格式。 |
toJSON() | 以 JSON 数据格式返回日期字符串。 |
toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 |
toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
toLocaleString() | 根据本地时间格式,把 Date 对象转换为字符串。 |
toString() | 把 Date 对象转换为字符串。 |
toTimeString() | 把 Date 对象的时间部分转换为字符串。 |
toUTCString() | 根据世界时,把 Date 对象转换为字符串。实例:var today = new Date(); var UTCstring = today.toUTCString(); |
UTC() | 根据世界时返回 1970 年 1 月 1 日 8时0分0秒 到指定时间的毫秒数。 |
valueOf() | 返回 Date 对象的原始值。 |
上面的所定义的时间都是定义的当前时间,接下来,我们来自定义时间。
自定义时间也需要Date对象,可以使用如下的形式来定义
new Date(milliseconds)
: 填入一个数字,计算完从1970 年 1 月 1 日 0时0分0秒 往(前)后推移n毫秒之后的时间,一般情况都是用不到的,一般在后端**[判断token是否注册超时导致过期]**的时候会用到。里面是参数有范围限制
(-8640000000000000— 8640000000000000)填负数就要往前推移,不介意回到公元前。
new Date(dateString)
: 填入表示日期的字符串,它有以下格式规定
- yyyy-MM-dd hh:mm:ss
- yyyy-MM-dd hh:mm:ss:SSSS 精确到毫秒
- yyyy/MM/dd hh:mm:ss 但说实在的,在日期这边年月日之间只需要有字符隔开就可以分辨了,但在时间这边的格式必须要规范
- yyyy-MM-dd 没有了时间,默认为0点0分0秒
new Date(year, month, day, hours, minutes, seconds, milliseconds);
里面的参数很明了了,自己看,内部参数都不是必填的,如果没填就取默认值。
总结
很常用的方法,而且它的格式和后端存储的时间格式是完全一样的,所以,在从后端拿到数据之后可以毫无顾虑地使用和转化。