9.11
1.Math对象
Math对象属于Javascript内置对象,无需实例化(不需要添加new ),可以直接使用。只有一个Math.PI的属性
1.1.Math对象的方法
Math.round(number) //四舍五入整数
Math.ceil(number) //向上取整
Math.floor(number) //向下取整
Math.random() //随机返回0.0~1.0之间的数
Math.max(x,y) //求最大值
Math.min(x,y) //求最小值
Math.pow(x,y) //求xy
console.log(Math.PI); // PI
console.log(Math.round(8.5)); // 四舍五入
console.log(Math.abs(-10)); // 四舍五入
console.log(Math.round(6.4));
console.log(Math.ceil(6.4)); // 向上取整
console.log(Math.floor(6.9)); // 向下取整
console.log(Math.max(1,7,6,4,9,2)); // 最大值
console.log(Math.min(1,7,6,4,9,2)); // 最小值
console.log(Math.pow(5,8)); // 求x的y次方
console.log(Math.sqrt(9)); // 开方
// 随机数 0-1
console.log(Math.random());
// 随机数 0-9
console.log(Math.floor(Math.random()*10));
// 随机数 0-99
console.log(Math.floor(Math.random()*100));
// 随机数 1-10
console.log(Math.floor(Math.random()*10)+1);
// 随机数 5-10
console.log(Math.floor(Math.random()*6)+5);
// 随机数 7-18
console.log(Math.floor(Math.random()*12)+7);
// 随机数公式:Math.floor(Math.random()*(max-min+1))+min
// 优雅的取随机字符串
console.log(Math.random().toString(16).substring(2));
2.Date对象
2.1.创建Date对象
var dateObj = new Date();
2.2.Date对象方法
2.2.1.将日期转为字符串
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
toLocaleString特殊用法:可以将一串数字转为xxx,xxx,xxx这种有间隔的方法
console.log((123264849.12).toLocaleString('en-US')); // 123,264,849.12
2.2.2.获取年、月、日、小时、分、秒
2.2.2.1.getYear()
两位的年(2000年前)或三位的年[1900] 获取两位数的年,从1900年开始计算,现在这个方法基本上已经没弃用
console.log(d.getYear());
2.2.2.2.getFullYear()
四位的年 获取完整的四位数的年,使用的比较多
console.log(d.getFullYear());
2.2.2.3.getMonth()
月份+1 获取月份,返回值为0-11,表示1月到12月,所以获取到月份之后需要+1
console.log(d.getMonth()+1); // 当前月+1
2.2.2.4.getDate()
日 获取天,返回值为今天是几号
获取每月有多少天
var max = new Date(2023,10,0).getDate()
2.2.2.5.getHours()
小时
2.2.2.6.getMinutes()
分钟
2.2.2.7.getSeconds()
秒
2.2.2.8.getTime()
时间戳,1970 年 1 月 1 日至今的毫秒数 时间戳专门用来计算时间的差值,或者倒计时等功能
2.2.3.定时器
setInterval(函数体,时间(毫秒),参数(传递给函数的参数)
// 时间跳动案例
function getT(){
// 获取时间
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth()+1;
var day = d.getDate();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var ms = d.getMilliseconds();
var oTime = document.getElementById('times');
oTime.innerHTML = year+'-'+month+'-'+day+' '+h+':'+m+':'+s+' '+ms;
}
function stop(){
// 清除某个定时器 clearInterval(定时器的名称);
clearInterval(myTime);
}
2.3.使用时间戳计算时间差
计算时间差
2021-9-5 10:30:20 -> 1630809020000
2020-8-9 12:30:45 -> 1596947445000
差多少年,天,小时,分钟,秒钟 时间戳
参照时间: 1970/1/1 0:0:0(格林威治时间) 1970/1/1 8:0:0(北京时间)
时间戳:d.getTime(); 单位是毫秒数
计算公式
d = parseInt(总秒数/60/60/24) // 天数
h = parseInt(总秒数/60/60%24) // 小时
m = parseInt(总秒数/60%60) // 分钟
s = parseInt(总秒数%60) // 秒
var aTime = new Date('2021-9-5 10:30:20'); // 指定的某个时间
var bTime = new Date('2021-8-5 8:20:10'); //
var cha = aTime.getTime() - bTime.getTime();
if(cha<=0){
console.log('时间输入有误!');
}else{
var miao = cha / 1000; // 秒的单位
var s = miao % 60; // 秒
var fen = parseInt(miao / 60); // 分钟的单位
var m = fen%60;// 分钟
var hour = parseInt(fen / 60); // 小时的单位
var h = hour % 24; // 小时
var day = parseInt(hour / 24); // 天
var d = day % 365;
var y = parseInt(day/365); // 年
console.log('两个时间相差:'+y+'年,'+d+'天,'+h+'小时,'+m+'分钟,'+s+'秒钟');
}
2.4.设置时间
2.4.1.直接设置年月日,时分秒
new Date() 获取当前时间
new Date(字符串 / 时间戳 / 值); 获取指定时间{
字符串:"2021-2-3 12:23:34"
时间戳:1617589820000
值: 2012,5,6,12,30,00
var d = new Date('2009-11-12 08:20:30'); // 正常字符串时间的表示方式
var d = new Date('Jan 1 2001 05:20:10'); // 日期时间对象返回的格式
var d = new Date(2020,10,10,10,20,30); // js的时间格式
var d = new Date(1607061589000); // 时间戳
2.4.2.简单设置时间
setMonth(); setDate(); setFullYear();