Math:
专门执行数学计算的对象,封装了数学计算中常用的常量
1. 取整:3种:
上取整: Math.ceil(n)
下取整: Math.floor(n)
四舍五入取整: Math.round(n);
round 与 toFixed相比
toFixed Number对象 按任意小数位数 *返回字符串*
round Math对象 只能取整! 返回数字
例:var n=1.23;
var a=n.toFixed(1);
console.log(1+a); //输出: 11.2
var n=1.23;
var a=n.toFixed(1);
console.log(Number(a)+1); //输出 2.2
var n=1.23;
var a=n.toFixed(1);
console.log(a-0+1); //输出 2.2
2. 乘方/开平方:
乘方:Math.pow(n,m):计算n的m次方
开平方: Math.sqrt(n):计算n的平方根
3. 获取最大值/最小值;
Math.max(a,b,c...)
Math.min(a,b,c...)
***固定套路:变相实现获取数组中最大值
Math.max.apply(Math,arr); 等于--> Math.max(arr[0],arr[1],...)
经过测试,Math所在的地方只要不为空,可以用任何字符替换Math,都可以得出最大值
4. 获取随机数:
Math.random();获得一个在0<=n<1范围内的小数, 得到的值得范围0<=n<1
任意min到max之间取一个随机整数: parseInt(Math.random()*(max-min+1)+min)
或Math.floor(Math.random()*(max-min+1)+min) *不能用上取整或四舍五入取整*
例:在60~100之间取随机整数 60<=X<=100 可以先看做 60<=X<101
Math.random()*(100-60) // 0<=X<40
Math.random()*(100-60+1) // 0<=X<41
Math.random()*(100-60+1)+60 // 60<=X<101
parseInt(Math.random()*(100-60+1)+60) // 向下取整后60 <= X <=100,如果此时采用上取整,会取到101的值
Date:
封装了一个时间点,提供了对时间和日期的操作API
1、Date中封装了从1970年1月1日0点0分0秒至今的毫秒数
2、创建Date对象常用的四种方式
① var now=new Date(); 创建一个新日期对象同时,保存了*客户端*当前时间点的毫秒数。——获得当前时间
② var time=new Date("xxxx/xx/xx [xx:xx:xx]") 自定义时间对象
③ var time=new Date(年,月-1,日[,时,分,秒) 自定义时间对象
④ var date1=new Date(); //new Date(毫秒数)
var date2=new Date(date1.getTime()); 通过复制日期对象创建新对象
3、将日期对象中的日期和时间转化为字符串
date.toLocaleString();将日期对象转换为字符串时,采用的是本地时间,显示的是地方日期的格式
date.toUTCString();将日期对象转换为字符串时,采用的是世界时间。 显示的是世界日期的格式
date.toLocaleDateString(); 仅转为日期部分
date.toLocaleTimeString(); 仅转为时间部分
例:
var date=new Date();
var a=date.toUTCString();//采用的是世界时间。
var b=date.toLocaleString();//采用的是本地时间
var c=date.toLocaleDateString();//仅转为日期部分
var d=date.toLocaleTimeString();//仅转为时间部分
console.log(a);console.log(b);
console.log(c);console.log(d);
Fri, 16 Nov 2018 02:18:26 GMT
2018/11/16 上午10:18:26
2018/11/16
上午10:18:26
4、在Date中年份,月份,星期,天的数字表示方法
Year :年份,以四位数显示
Month:月份,值范围为0-11,一月份为0,十二月为11
Date : 日期/几号,表示一个月中的某一天,例如12月5号,5就是Date
取值范围1-31,取得的值是与自身相同,例如5号值就是为5
Day:星期几,值为0-6,周日为0
周日 周一 周二 周三 周四 周五 周六
0 1 2 3 4 5 6
5、获得日期对象中的日期和时间
date.getTime();//返回日期对象中的时间与1970年1月1日0时0分0秒所间隔的毫秒数
date.getFullYear();//获取年份
date.getMonth();//获取月份
date.getDate();//获取日期
date.getDay();获取星期几
date.getHours();//返回小时部分
date.getMinutes();//返回分钟部分
date.getSeconds();//返回秒钟部分
date.getMilliseconds();//返回毫秒部分
6、设置日期对象中的日期和时间(一般获得日期与设置日期是同时进行的)
date.setFullYear();
date.setMonth();
date.setDate();
*星期没有set方法!
7、 对日期进行计算
① 两日期对象直接相减,结果是毫秒差!
例:计算从2000年到现在有多少天
var now=new Date();
var time=new Date("2000/01/01");
var days=parseInt((now-time)/1000/3600/24);
console.log("已经过了"+days+"天"); // 已经过了6931天
② 对任意分量做加减:先用get取出来,做计算,再用set放回去
date.setXXX(date.getXXX()+-n); //*直接修改原日期对象*
例:2015年签的合同,有效期3年,求合同到期时间,到期前一周发出提示
var startdate=new Date("2015/01/01");
var enddate=new Date(startdate.getTime());
enddate.setFullYear(enddate.getFullYear()+3);
console.log(enddate.toLocaleDateString());
var tishi=new Date(enddate.getTime());
tishi.setDate(tishi.getDate()-7);
console.log(tishi.toLocaleDateString());
输出: 2018/1/1 //这是合同到期时间
2017/12/25 //这是应该发出提示的时间
8、获得格式化后的当前时间
var d=new Date();
var year=d.getFullYear();
var month=change(d.getMonth()+1);
var day=change(d.getDate());
var hour=change(d.getHours());
var minute=change(d.getMinutes());
var second=change(d.getSeconds());
function change(t){
if(t<10){
return "0"+t;
}else{
return t;
}
}
var time=year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;
console.log(time);