js中Date的常用方法

学习记录 - js Date

获取当前时间的方法

方式一:

1
new Date(); //Wed Sep 13 2017 23:59:59 GMT+0800 (中国标准时间)

方式二:(以毫秒的形式)

1
Date.now(); //1566310835187

get API

获取指定时间内的部分数值(如:年、月、日)

不指定时间,默认当前时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const date = new Date('1566310835187'); //获取指定时间
// const date = new Date();//获取当前时间
//年(4位数)
date.getFullYear(); //2017
//月(0-11)
date.getMonth(); //8
//日(1-31)
date.getDate(); //13
//时
date.getHours(); //23
//分
date.getMinutes(); //59
//秒
date.getSeconds(); //59
//毫秒
date.getMilliseconds(); //747

set API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//获取当前时间
const date = new Date();
//年(4位数)
date.setFullYear(2017);
//月(0-11)
date.setMonth(8);
//日(1-31)
date.setDate(13);
//时
date.setHours(23);
//分
date.setMinutes(59);
//秒
date.setSeconds(59);
//毫秒
date.setMilliseconds(747);

其他 API

.toString 将当前时间转成字符串类型

.toDateString 日期部分以字符串显示

.toTimeString 时间部分以字符串显示

.toLocaleString 以本地的时间格式显示当前时间

.toLoacleTimeString 以本地时间格式显示当前时间的时间部分

.toLocaleDateString 以本地时间格式显示当前时间的日期部分

.toUTCString 将当日的日期(根据 UTC)转换为字符串

.getTime 返回从 1970 年 1 月 1 日至今的毫秒数

.setTime 设置从1970年1月1日至今的毫秒数

注意: 在get和set后加UTC,可以获取utc时间(cookie过期时间请用utc时间避免时差导致不能准时失效)

Tip

  • Date.now();获取当前时间相对于1970年过去多少毫秒
  • Date.parse('2017/09/13') 生成指定格式日期距1970年过去了多少毫秒
  • GMT 格林威治标准时,’天文学事件’
  • UTC 事件,协调世界时,’原子物理事件’,他更加精确,基本不会产生误差
  • 时区:
    • 克服时间上的混乱,1884年在华盛顿召开的国际经度会议(国际子午线会议)
    • 规定全球划分为24个时区,规定英国(格林威治)为0时区,分东1-12区,西1-12区,每个时区的经度宽度是15度,时差刚好是一个小时
  • 时间戳 unix Time 纪元时间 相对于1970-1-1过去了多少秒

定时器和延时器

Tip:

  • 定时器/延时器用完记得清除,不然可能会造成内存泄漏
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let fn = ()=>{
console.log('Hello')
}
//延时器
//200毫秒后调用该fn函数(只执行一次),返回一个id表示
let timerId1 = setTimeout(fn,200)
//清除指定id标识的延迟操作
clearTimeout(timerId1)
//延迟定时器方法的执行时异步的,所以计时器并不能准时调用

//定时器
//每200毫秒调用该fn函数(执行一次),返回一个id表示
let timerId2 = setInterval(fn,200)
// 清除指定id标识的计时器
clearInterval(timerId2)