1 日期对象
1 创建日期对象
- Date() 调用函数,返回字符串
- new Date() new调用Date() 得到一个对象
2 参数
- value
代表自1970年1月1日00:00:00(世界标准时间)起经过的毫秒数可以是一个负数
8的原因是我们所处时区的问题,中国是东八区,+8 - dateString:日期字符串 年-月-日
- year、month(0-11)、hour、minute、second、 millisecond(毫秒)以逗号分隔
注意事项
- 如果没有参数会根据系统当前时间创建Date对象
- 至少提供两个参数,不然就是value,其余默认为1或0
- 通过函数直接返回的是String,new调用返回的是Object
- 通过第三种方式设置的值,一旦超出会自行计算(进位)
3 获取日期对象
new Date().getFullYear()
2020
new Date().getMonth() + 1
3
new Date().getDate() // 获取日
15
new Date().getDay() // 获取星期
0
new Date().getHours()
17
new Date().getMinutes()
32
new Date().getMilliseconds()
470
new Date().getSeconds()
3
new Date().getTime() // 获取的是从1970年1月1日00;00;00开始到现在的毫秒数
1584264888474
设置时间
date.setFullYear(2038)
2167344000000
date.getFullYear()
2038
设置时间是没有设置星期数的函数的
星期数是根据设置的
天数来自动设置的
2 Math对象
常用方法
-
ceil - 天花板 向上取整
-
floor - 地板 向下取整
-
round(num) 四舍五入
-
random()
问题:- 小数太多了
- 包0不包含1
-
Math.max()
返回是当前一组数中最大的值
如果不给参数,返回-Infinity -
Math.min()
返回当前数组中最小的值
如果不给参数,返回Infinity以上两个方法,在内部都会执行Number,如果是不可以转成有效值的,会返回NaN
-
abs 绝对值 不能转为数字的参数返回NaN
-
sqrt 开平方
-
pow(x, y) x的y次方
综合使用
var arr = [1, 2, 3, 4];
var num = Math.random() * 4;
var n = Math.round(num);
console.log(arr[n]);
VM2256:4 4
0 ~ n
包含n ,使用round
不包含n ,推荐使用floor
5 ~ 10 -5
Math.random() * 10 // 0 ~ 10
0 ~ 5
Math.random() * 5 //0 ~ 5 5 ~ 10
2 ~ 17 - 2
0 ~ 15
Math.random() * 15 + 2