2022-01-12 day08 日期+对象+定时器

一. 日期

  • 日期对象存储从1970-01-01开始到现在的毫秒数.
1.创建日期对象
  • var date = new Date();
var date = new Date();
console.log(date); // Wed Jan 12 2022 11:51:12 GMT+0800 (中国标准时间)
2. 指定日期的格式
  • var date = new Date("2021-01-12 11:18:00:00");
  • var date = new Date("1970/01/12 8:0:00");
  • var date = new Date(1970, 1, 12, 8, 0, 00);
3. 获取日期的方式
  1. , 以四位数返回年份
  • date.getFullYear()
var date = new Date();
console.log(date.getFullYear()); // 2022
  1. , 取值0~11, 0代表1月
  • date.getMonth()
var date = new Date();
console.log(date.getMonth() + 1); // 1
  1. , 取值1~31
  • date.getDate()
var date = new Date();
console.log(date.getDate()); // 8
  1. 星期, 取值0~6, 0代表星期日
  • date.getDay()
var date = new Date();
console.log(date.getDay()); // 3
  1. , 取值0~23
  • date.getHours()
var date = new Date();
console.log(date.getHours()); // 9
  1. , 取值0~59
  • date.getMinutes()
var date = new Date();
console.log(date.getMinutes()); // 44
  1. , 取值0~59
  • date.getSeconds()
var date = new Date();
console.log(date.getSeconds()); // 42
  1. 毫秒, 取值0~999
  • date.getMilliseconds()
var date = new Date();
 console.log(date.getMilliseconds()); // 588
4. 设置日期的方式

[注] 除了星期(Day)没有set外, 其它都有,因为星期是根据日期系统自动判断的

  1. setDate() 设置日期
  2. setMonth() 设置月份
  3. setFullYear() 设置年份
  4. setHours() 设置小时
  5. setMinutes() 设置分钟
  6. setSeconds() 设置秒数
  7. setMilliseSeconds() 设置毫秒数
  8. setTime(时间戳) 设置时间戳, 显示新的日期和时间
// eg.计算你出生那天星期几?
var date = new Date();
date.setFullYear(1999); // 设置年
date.setMonth(0); // 设置月 0-11
date.setDate(19); // 设置日 1-31
var list = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
console.log(list[date.getDay()]); // 星期二
5. 获取时间戳的方式
  1. date.valueOf() 返回date的原始值(毫秒数)
  2. date.getTime() 返回1970年1月1日至今的毫秒数
  3. Date.now() 返回1970年1月1日至今的毫秒数
  4. Date.parse("2022-12-12 12:12:00:00") 返回指定日期的毫秒数
var date = new Date();
console.log(date.valueOf()); // 1644977964050
console.log(date.getTime()); // 1644977964050
console.log(Date.now()); // 1644977964050
console.log(Date.parse("2022-12-12 12:12:00:00")); // 1670818320000
6. 使用时间戳返回日期的计算方法
  1. : 时间戳/1000/60/60/24
  2. : 时间戳/1000/60/60%24
  3. : 时间戳/1000/60%60
  4. : 时间戳/1000%60
  5. 毫秒: 时间戳%1000

二. 对象

  • 对象的组成: 属性 + 方法
1. 对象的创建
  1. 构造函数 (new可以省略, 但是不建议)
var dog = new Object();
dog.name = '大黄';
dog['age'] = 2;
dog.run = function() {};
  1. 字面量表达式
var person = {
  name: '小明',
  age: 10,
  run: function() {
    console.log('跑步');
  }
};
2. 添加属性和方法
  1. 添加属性
var person = {};
person.address = '中国';
person['sex'] = '男';
  1. 添加方法
var person = {
  run: function() {
    return '执行了run方法';
  }
};
person.eat = function() {
  return 'eat食物';
};
person['sleep'] = function() {};
3. 获取对象的属性和方法

1.获取属性

var person = {
address : '中国',
sex :'男'
};
console.log(person.address); // 中国
console.log(person['sex']); // 男
  1. 获取方法
var person = {
  eat(){
    return '执行了eat方法';
  },
  sleep: function() {
    return '执行了sleep方法';
  }
 }
console.log(person.eat()); // 执行了eat方法
console.log(person['sleep']()); // 执行了sleep方法
4. 删除方法和属性
delete person.age
delete person['sleep']

三. 定时器

  • 定时器包含定时器和延时器
  • 定时器延时器编号从1开始
  • 两种定时器使用的编号池是同一个编号池,在同一个编号池中已经被使用的编号不会再次使用
1. 定时器 setInterval()
  • 格式: setInterval(code, millisecond)
  • code: 要调用的代码块或函数
  • millisecond: 每次执行的毫秒数
  • 按照指定的周期(以毫秒)调用函数或表达式
  • 关闭定时器: clearInterval(timer)
var timer = setInterval(function() {
  console.log('哈哈');
}, 1000);
console.log(timer); // 1
clearInterval(timer); // 关闭定时器
2. 延时器 setTimeout()
  • 格式: setTimeout(function(形参1, 新参2, ...){}, millisecond, 实参1, 实参2, ...)
  • 指定的时间过后, 执行一次代码
  • 关闭延时器: clearTimeout(timer)
var timer = setTimeout(function(a, b) {
  console.log(a, b);
}, 1000, '哈哈', '嘿嘿');
console.log(timer); // 1
clearTimeout(timer); // 关闭延时器
3. 同步异步执行机制
  • 同步优先(按顺序执行)
  • 同步运行完之后异步进程按运行时间执行
console.log('11111111111');

setInterval(function() {
  console.log('嘿嘿嘿嘿')
}, 2000);

setInterval(function() {
  console.log('哈哈哈哈')
}, 1000);

console.log('22222222222');

// 结果: 11111111111 -> 22222222222 -> 哈哈哈哈 -> 嘿嘿嘿嘿
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容