一、Math对象
Math对象中封装了一些数学函数,方便我们做运算使用。
这里简单介绍几种常用的数学函数。
1、四舍五入
console.log(Math.round(4.5));//5
console.log(Math.round(4.2));//4
2、向上取整
console.log(Math.ceil(1.2));//2
console.log(Math.ceil(-1.2));//-1
3、向下取整
console.log(Math.ceil(1.2));//1
console.log(Math.ceil(-1.2));//-2
4、x的y次方
//3的2次方
console.log(Math.pow(3,2));//9
//2的3次方
console.log(Math.pow(2,3));//8
5、开平方
console.log(Math.sqrt(4));//2
6、绝对值
console.log(Math.abs(-1));//1
6、比较返回较大的数
console.log(Math.max(4, 5)));//5
7、比较返回较小的数
console.log(Math.min(4, 5)));//4
8、0-1之间的随机数
console.log(Math.random());
//随机0-10之间的数
console.log(Math.random()*10);
二、Date对象
2.1、了解时间
格林尼治时间(GTM),是英国郊区皇家格林尼治天文台的时间,因为地球自转的原因,不同经度上的时间是不相同的,格林尼治天文台是经度为0的地方。世界上发生的重大时间都是以格林尼治时间时间为标准的。
【例如】北京是东八区,时间比格林尼治时间快8个小时。比如格林尼治时间是1日0点,北京时间就是1日早8点
世界协调时间(UTC),世界时间。1970年1月1日0点。
2.2、Date
ECMAScript中的Date类型是在早期Java中的java.util.Date类的基础上构建的。为此Date类型使用自UTC1970年1月1日午夜(零时)开始经过的毫秒数保存时间的。
2.3、Date常用方法
1、创建时间
//1.获取当前时间
//Date()传参是无效的 返回的是当前的时间
var d = Date("2016-5-20");
console.log(d);//Tue Aug 01 2017 17:04:43 GMT+0800 (中国标准时间)
//2.Date的构造函数 获取时间
var d2 = new Date();
console.log(d2);//Tue Aug 01 2017 17:04:43 GMT+0800 (中国标准时间)
//3.传入毫秒数
//假设开发者所在的时区是格林尼治时区
//电脑上东八区 -- 时区转换 chrome浏览器
var d3 = new Date(-24*3600*1000);
console.log(d3);//Wed Dec 31 1969 08:00:00 GMT+0800 (中国标准时间)
//4.传入表示时间的字符串
//月 日,年 时:分:秒
var d4 = new Date("6 22,2016 12:00:00");
console.log(d4);//Wed Jun 22 2016 12:00:00 GMT+0800 (中国标准时间)
//ISO 2016-06-22 假设开发者所在的时区是 0度
//非ISO写法 假设开发者所在的时区就是电脑系统的时区
var d5 = new Date("2016-06-22");
console.log(d5);//Wed Jun 22 2016 08:00:00 GMT+0800 (中国标准时间)
var d6 = new Date("2016/06/22");
console.log(d6);//Wed Jun 22 2016 00:00:00 GMT+0800 (中国标准时间)
//5.传入年月日来创建日期对象
//(年,月[,日,时,分,秒])
//月份计数是从0开始的 0---一月 1--二月
//日期计数是从1开始的
var d7 = new Date(2016,6,12,0,0);
console.log(d7);//Tue Jul 12 2016 00:00:00 GMT+0800 (中国标准时间)
2、获取年、月、日、时、分、秒、星期几
var d2 = new Date(2016,12,8,12,0,0);//年月 日 时 分 秒
//Thu May 05 2016 12:00:00 GMT+0800 (中国标准时间)
console.log(d2);
//getFullYear 年
console.log(d2.getFullYear());//四位数字的年份
//getMonth 月
console.log(d2.getMonth());//某个月份(0 - 11) 12月份是0
//getDate 天
console.log(d2.getDate());//返回一个月中的某一天
//getDay 星期几
console.log(d2.getDay());//返回一周中的某一天(0 - 6) 周日是0
//时 分 秒
console.log(d2.getHours());// 0 - 23
console.log(d2.getMinutes());// 0 - 59
console.log(d2.getSeconds());// 0 59
console.log(d2.getMilliseconds());//毫秒 0 -- 999
2.4、日期处理
1、日期的运算
两个日期对象进行减法运算,返回的就是它们间隔的毫秒数;进行加法运算,返回的就是连接后的两个字符串。
var d1 = new Date(2016,6,22,15,55,30);
var d2 = new Date(2016,6,22,15,55,59);
//日期对象相减 结果是两个日期之间相差的毫秒数
console.log(d2-d1);//29000
//日期对象相加 结果是 将两个日期对象先转换成字符串 然后将两个字符串拼接
console.log(d2+d1);
//Fri Jul 22 2016 15:55:59 GMT+0800 (中国标准时间)Fri Jul 22 2016 15:55:30 GMT+0800 (中国标准时间)
2、Date.parse("2016-05-08")
参数:表示日期的字符串;格式:2016-05-08 2015/05/08 12:00:00
返回值:返回该日期距离1970年1月1日0点的毫秒数
//1970 1 1 到这个时间的毫秒数
console.log(Date.parse("2016-10-24"));//1477267200000
3、getTime()获取某个日期自1970年以来的毫秒数
setTime()修改日期的毫秒数,对应的日期时间也会修改
var d = new Date();
//获取毫秒数
console.log(d.getTime());//1501579151805
//设置毫秒数
d.setTime(1000);
console.log(d);//Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)
2.5、封装函数,将时间转成如下格式:2016年07月22日 星期五 15:55:30
function getDateString(d){
var str = d.getFullYear()+"年"
+twoNumber(d.getMonth()+1)+"月"
+twoNumber( d.getDate() )+"日 "
+getWeek( d.getDay() )+" "
+twoNumber( d.getHours() )+":"
+twoNumber( d.getMinutes() )+":"
+twoNumber( d.getSeconds() );
return str;
}
//不足两位 高位补0
function twoNumber(num){
return num<10?"0"+num:num;
}
function getWeek(num){
switch(num){
case 0:
return "星期日";
case 1:
return "星期一";
case 2:
return "星期二";
case 3:
return "星期三";
case 4:
return "星期四";
case 5:
return "星期五";
case 6:
return "星期六";
}
}
//使用封装好的函数
var d = new Date(2016,6,22,15,55,30);
console.log(getDateString(d));//2016年07月22日 星期五 15:55:30