Math的一个属性 - PI - 圆周率
语法:Math.PI
用法 | 语法 |
---|---|
绝对值 | Math.abs() |
最大值 | Math.max() |
最小值 | Math.min() |
随机数 | Math.random() // 产生的是一个0-1之间的小数,含0不含1//将随机数扩大十倍 :parseInt(Math.random()*10) [范围0-9] |
向上取整 | Math.ceil()//例如1.2,向上取整的2 |
向下取整 | Math.floor()//例如1.2,向下取整的1 |
四舍五入 | Math.round(值) |
求次方 | Math.pow(底数,幂) |
算术平方根(开根号) | Math.sqrt(值) |
获取随机数:
function getRandom(a,b){
var max = Math.max(a,b);
var min = Math.min(a,b);
return parseInt( Math.random()*(max-min) )+min
}
案例:获取随机颜色值
//html代码:
<body>
<input type="text" id="text">
</body>
//js代码:
function getRGB(){
var arr = [];
for(var i=0;i<3;i++){
arr.push(Math.floor(Math.random()*255)); // 得到一个0~255的随机数
}
var str = '#';
for(var i in arr){
str += arr[i].toString(16); // 将每个随机数遍历并转为16进制
}
return str;
}
console.log(getRGB());
text.style.background = getRGB();
tostring方法将十进制(D)数字转为其他进制。
数字.toString(将十进制数字转为指定的进制数)
var x = 110;
x.toString(2) //转为2进制(B)
x.toString(8) //转为8进制(O)
x.toString(16) //转为16进制(H)
parseInt方法将其他进制数字转为十进制。
parseInt(被转换的数据,将数据当做什么进制转换)
var x = "110" //这是一个二进制的字符串表示
parseInt(x, 2) //把这个字符串当做二进制, 转为十进制
var x = "70" //这是一个八进制的字符串表示
parseInt(x, 8) //把这个字符串当做八进制, 转为十进制
var x = "ff" //这是一个十六进制的字符串表示
parseInt(x, 16) //把这个字符串当做十六进制, 转为十进制
注意:parseInt方法是用于将字符串转为数字的方法。 接受两个参数。
第一个要转换的字符串,第二个是可选的,
如果没有值, 默认是10进制; 如果有值, 就是以该值为转换进制。
var date = new Date(); //使用构造函数创建一个当前时间的对象
得到日起对象可以传入时间:
var date = new Date("2017-03-22"); //创建一个指定时间的日期对象
var date = new Date("2017-03-22 00:52:34"); //创建一个指定时间的日期对象
var date = new Date(2017, 2, 22, 0, 52, 34); //(年,月,日,时,分,秒)
var date = new Date(1523199394644); //参数:毫秒值
注意:Date构造函数当不传递任何参数的时候,返回的是当前时间。当传入参数的时候,获取的是传进去的时间。
使用日期对象的方法获取日期的指定部分:
对象.getFullYear(); //获取4位的年份
对象.getMonth(); //获取月 (注意从0开始计算,1-12月份使用0-11来描述)
对象.getDate(); //获取日(即当月的第几天)
对象.getDay(); //获取星期 (0-6 0:星期天)
对象.getHours(); //获取时
对象.getMinutes(); //获取分
对象.getSeconds(); //获取秒
对象.getMilliseconds(); //获取毫秒(一秒 === 1000毫秒)
对象.getTime(); //获取时间戳
案例:将日期格式化成字符串
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year, month, day].join('-');
}
console.log(formatDate('May 13,2016')); //2016-05-13
date.setFullYear(2016) // 将日期对象中的年份设置为2016
date.setFullYear(year,month,day)
date.setMonth(3) // 将日期对象中的月份设置为4月份
date.setDate(15) // 将日期对象中的日期设置为15号
date.setHours(12) // 将日期对象中的小时设置为12点
date.setMinutes(56) // 将日期对象中的分钟设置为56分
date.setSeconds(23) // 将日期对象中的秒数设置为23秒
date.setMilliseconds() //设置毫秒数
注意:set的时候传入的参数超出了正常范围,会自动的前后推算。
时间戳 - 就是从1970年1月1日0点0分0秒开始到现在走过的毫秒数
Date.parse("年月日时分秒的字符串") // 获取1970年到设定时间的毫秒数
new Date().getTime()
+new Date();
Date.now();//获取当前的时间戳
案例:计算两个日期的时间差值
function count(){
var date1=new Date(2010,10,3);
var date2=new Date(2017,9,24);
var date=(date2.getTime()-date1.getTime())/(1000*60*60*24);/*不用考虑闰年否*/
alert("相差"+date+"天");}
date.toLocalString();//本地风格的日期格式
date.toLocaleDateString(); // 获取日期
date.toLocaleTimeString(); // 获取时间
eg:距离5月1号00:00:00 还有多少天多少小时多少分多少秒
// 在定时器之前获取一遍,防止打开网页过一秒才显示
var now = new Date(); // 获取当前时间
var Mayday = new Date("2020-5-1"); // 获取五一的事件对象
var differ = Mayday.getTime() - now.getTime(); // 求出时间戳的差
var days = parseInt(differ/1000/60/60/24); // 根据毫秒数得到天数
var hours = parseInt(differ/1000/60/60)%24; // 根据毫秒数得到小时
var minutes = parseInt(differ/1000/60)%60; // 根据毫秒数得到分钟
var seconds = parseInt(differ/1000)%60; // 根据毫秒数得到秒数
box.innerHTML = ("距离五一还有"+days+"天"+hours+"小时"+minutes+"分"+seconds+"秒");
setInterval(function(){
var now = new Date(); // 获取当前时间
var Mayday = new Date("2020-5-1"); // 获取五一的事件对象
var differ = Mayday.getTime() - now.getTime(); // 求出时间戳的差
var days = parseInt(differ/1000/60/60/24); // 根据毫秒数得到天数
var hours = parseInt(differ/1000/60/60)%24; // 根据毫秒数得到小时
var minutes = parseInt(differ/1000/60)%60; // 根据毫秒数得到分钟
var seconds = parseInt(differ/1000)%60; // 根据毫秒数得到秒数
box.innerHTML = ("距离五一还有"+days+"天"+hours+"小时"+minutes+"分"+seconds+"秒");
},1000)