0
点赞
收藏
分享

微信扫一扫

Javascript(笔记29) - 日期对象

Javascript(笔记29) - 日期对象

Date()

系统提供好的构造函数,new 一个就能生成日期对象;

var date = new Date()

控制台:

Javascript(笔记29) - 日期对象_时间对象

Date对象属性

constructor

返回创建此对象的函数的引用;

prototype

原型是构造函数上的属性


Date对象get方法

是用 Date() 构造函数,构造出来的对象的一些方法;

创建的对象,只反映新建时刻的,年月日时分秒;

get 系列方法是获得时间

当前对象使用的方法,都仅返回创建这个对象的那个时刻的时间信息,不会随时间变化;

Date()

构造函数本身,不 new 的话,空执行,可以生成日期的字符串;

Javascript(笔记29) - 日期对象_时间对象_02

getDate()

返回一个月中的某一天;

Javascript(笔记29) - 日期对象_时间对象_03

今天是 9 号;


getDay()

返回一周的第几天;周天返回 0 ,周一是 1 ,周二是 2,以此类推;

Javascript(笔记29) - 日期对象_javascript_04

今天是周三,返回的 3 并不是指周三,是一周的第四天,外国人(古希腊开始)是周天开始算一周的开始,周天返回 0 ;所以,第4天也就返回 3 ,正好也是周三;


getMonth()

返回一年的第几个月;一月返回 0 ,二月返回 1;

Javascript(笔记29) - 日期对象_时间戳_05

11 月就返回10了,所以, getDay() 返回一周里的第几天就好理解了。 

算月份的时候,到时要加 1;


getFullYear()

返回以四位数字的年份;

Javascript(笔记29) - 日期对象_javascript_06

早年使用的  getYear(),会返回 两位数的年份,并在前面加了个 1,这是历史问题,一般就用 getFullYear(),就可以了;

Javascript(笔记29) - 日期对象_javascript_07

getHours()

返回对象的小时(0-23)

Javascript(笔记29) - 日期对象_时间对象_08

getMinutes()

返回对象的分钟(0-59)

Javascript(笔记29) - 日期对象_时间戳_09

getSeconds()

返回对象的秒数(0-59)

Javascript(笔记29) - 日期对象_时间对象_10

getMilliseconds()

返回对象的毫秒数(0-999)

Javascript(笔记29) - 日期对象_时间戳_11

getTime()

返回1970年1月1日至今的毫秒数;

获取时间戳(一个时刻的印记,可做唯一标识);

Javascript(笔记29) - 日期对象_时间戳_12

这个毫秒数是人为约定的1970年1月1日零点开始的纪元时间,返回的毫秒数是从纪元时间开始到新建对象的那一刻的毫秒数(时间戳)。是个很重要、很常用的时间对象方法;

计算时间差的方法来看代码执行效率,优化代码优化的就是时间;


示例:

计算一段代码执行所用的时间;

var date1 = new Date();
for(var i = 0; i< 100000000; i++){
i += 1;
}
var date2 = new Date();
console.log(date2.getTime() - date1.getTime()) // 62

用后一个时间减前一个时间,得出累加 1亿次 +1 运算所用的毫秒差:62;

除了一系列获得时间的方法外,JS还有一系列设置时间的方法:


Date对象set方法

set 系列方法,可以设置时间

可以通过set方法,包装某一个时刻的时间,例如:闹钟,是未来的某个时刻;

不论 get 还是 set 都要先 new 一个对象出来;

var date = new Date();

setDate()

设置Date对象中某一天(1-31);

某一天是从1开始的;

Javascript(笔记29) - 日期对象_时间对象_13

今天9号,设置到18号;

setMonth()

设置对象中的月份(0-11)

月份是从0开始的;

Javascript(笔记29) - 日期对象_javascript_14

设置成2,反应出来是一年的第2个月,月份从0计数,所以是3月;


setFullYear()

设置年份(四位数字)

Javascript(笔记29) - 日期对象_javascript_15

还有个 setYear 是两位数的年份,基本不用了;


setHours()

设置对象的小时数(0-23)

Javascript(笔记29) - 日期对象_javascript_16

setMinutes()

设置对象的分钟数(0-59)

Javascript(笔记29) - 日期对象_时间对象_17

setSeconds()

设置对象的秒数(0-59)

Javascript(笔记29) - 日期对象_javascript_18

setMilliseconds()

设置对象的毫秒数(0-999)

Javascript(笔记29) - 日期对象_时间戳_19

如果设置一个超过999的毫秒数,那么日期也会改变:

Javascript(笔记29) - 日期对象_时间对象_20

这样的作用就像 setTime了。

setTime()

设置对象的时间戳

目前的时间戳是个 “16” 开头的 13位数;

Javascript(笔记29) - 日期对象_时间戳_21


示例:

设置一个闹钟:

var date = new Date();
date.setMinutes(26);
setInterval(function () {
if (new Date().getTime() - date.getTime() > 1000) {
console.log("起床了");
}
}, 1000);

每隔一秒执行一次这个函数,到点了,就开始打印。

控制台:

Javascript(笔记29) - 日期对象_javascript_22


Date对象其他方法

其他方法不是很常用

toString()

对象日期转换成字符串

Javascript(笔记29) - 日期对象_时间对象_23

toTimeString()

对象时间转换成字符串

Javascript(笔记29) - 日期对象_时间戳_24


练习:

封装函数,打印当前是何年何月何日何时,几分分秒;

function myDate() {
var date = new Date();
YY = date.getFullYear();
MM = parseInt(date.getMonth() + 1);
DD = date.getDate();

HH = date.getHours();
MMM = date.getMinutes();
SS = date.getSeconds();
console.log("当前时间:" + YY + "-" + MM + "-" + DD + " " + HH + ":" + MMM + ":" + SS + "");
}
myDate();

控制台:

Javascript(笔记29) - 日期对象_时间对象_25








举报

相关推荐

0 条评论