Math和日期对象

1.Math对象

1.1Math对象的使用

Math 对象用来对数字进行与数学相关的运算,该对象不是构造函数,不需要实例化对象可以直接使用其静态属性和静态方法。

成员功能
PI获取圆周率,结果为3.141592653589793
abs(x)获取x的绝对值,可传入普通数值或是用字符串表示的数值
max()获取所有参数中的最大值
min()获取所有参数中的最小值
pow(base, exponent)获取基数(base)的指数(exponent)次幂,即 baseexponent
sqrt(x)获取x的平方根
ceil(x)获取大于或等于x的最小整数,即向上取整(舍弃小数部分,整数部分加1)
floor(x)获取小于或等于x的最大整数,即向下取整(舍弃小数部分,整数部分不变)
round(x)获取x的四舍五入后的整数值
random()获取大于或等于0.0且小于1.0的随机值

代码演示:

Math.PI;					// 获取圆周率

Math.abs(-25);				// 获取绝对值,返回值:25
Math.abs('-25')				// 获取绝对值,返回值:25

Math.max(1, 2, 3, 4, 5);	// 获取最大值
Math.min(1, 2, 3, 4, 5);	// 获取最小值

Math.pow(2, 4);				// 获取获取2的4次幂
Math.sqrt(9);				// 获取x的平方根

Math.ceil(1.1);			    // 向上取整,返回值:2
Math.ceil(1.9);			    // 向上取整,返回值:2
Math.floor(1.1);			// 向下取整,返回值:1
Math.floor(1.9);			// 向下取整,返回值:1

Math.round(1.5);			// 四舍五入,返回值:2
Math.round(-1.5);			// 四舍五入,返回值:-1
Math.round(-1.6);			// 四舍五入,返回值:-2(取较大值)

1.2 生成指定范围的随机数

**Math.random()**用来获取随机数,每次调用该方法返回的结果都不同。该方法返回的结果是一个很长的浮点数,其范围是0~1(不包括1)。

公式为:

Math.random() * (max - min) + min;

当我们要取整时可以搭配math.floor()来实现

公式为:

Math.floor(Math.random() * (max-min + 1)+ min);

利用随机数,实现在数组中随机获取一个元素

示例代码:

function getRandom(min, max) {
	return Math.floor(Math.random() * (max - min + 1) + min);
}
var arr = ['apple', 'banana', 'orange', 'pear'];
console.log(arr[getRandom(0, arr.length - 1)]);

2.日期对象

JavaScript中的日期对象用来处理日期和时间。例如,秒杀活动中日期的实时显示、时钟效果、在线日历等。

2.1 日期对象的使用

JavaScript中的日期对象需要使用newDate()实例化对象才能使用,Date(是日期对象的构造函数。在创建日期对象时,可以为Date()构造函数传入一些参数,来表示具体的日期,其创建方式如下。

//方式1:没有参数,使用当前系统的当前时间作为对象保存的时间
var date1=new Date(); 
// 输出结果:Wed Oct 16 2019 10:57:56 GMT+0800(中国标准时间)
console.log(date1);
//方式2:传入年、月、日、时、分、秒(月的范围是0~11即真实月份-1)
var date2 = new Date(2019,10,16,10,57,56);
//输出结果:Sat Nov 16 2019 10:57:56 GMT+0800(中国标准时间)
console.log(date2);
//方式3:用字符串表示日期和时间
var date3 = new Date('2019-10-16 10:57:56');
//输出结果:Wed Oct 16 2019 10:57:56 GMT+0800(中国标准时间)
console.log(date3);
date对象的常用get方法
方法作用
getFullYear()获取表示年份的4位数字,如2020
getMonth()获取月份,范围0~11(0表示一月,1表示二月,依次类推)
getDate()获取月份中的某一天,范围1~31
getDay()获取星期,范围0~6(0表示星期日,1表示星期一,依次类推)
getHours()获取小时数,返回0~23
getMinutes()获取分钟数,范围0~59
getSeconds()获取秒数,范围0~59
getMilliseconds()获取毫秒数,范围0~999
getTime()获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数
date对象的常用set方法
方法作用
setFullYear(value)设置年份
setMonth(value)设置月份
setDate(value)设置月份中的某一天
setHours(value)设置小时数
setMinutes(value)设置分钟数
setSeconds(value)设置秒数
setMilliseconds(value)设置毫秒数
setTime(value)通过从1970-01-01 00:00:00计时的毫秒数来设置时间

2.2【案例】统计代码执行时间

通过日期对象可以获取从1970年1月1日0时00秒开始一直到当前UTC时间所经过的毫秒数,这个值可以作为时间戳来使用。通过时间戳,可以计算两个时间之间的时间差,还可以用于加密、数字签名等技术中。

// 方式1:通过日期对象的valueof()或getTime()方法
var date1 = new Date();
// valueOf用于获取对象的原始值
console.log(date1.valueOf()); // 示例结果:1571196996188
console.log(date1.getTime()); // 示例结果:1571196996188

// 方式2:使用“+”运算符转换为数值型
var date2 = + new Date();
console.log(date2);	// 示例结果:1571196996190

// 方式3:使用HTML5新增的Date.now()方法
console.log(Date.now());	// 示例结果:1571196996190

2.3【案例】倒计时

倒计时的核心算法是输入的时间减去现在的时间,得出的剩余时间就是要显示的倒计时时间,这需要把时间都转化成时间戳(毫秒数)来进行计算,把得到的毫秒数转换为天数、小时、分数、秒数。

示例代码:

function CountDown(Time) {
    var d, h, m, s;
    var nowTime =+new Date();
    var inputTime=+new Date(time);
    var times = (inputTime-nowTime)/1000;
    var d = parseInt(times / 60 / 60 / 24);
    d = d < 10 ? '0' + d : d;
    var h = parseInt(times / 60 / 60 % 24);
    h = h < 10 ? '0' + h : h;
    var m = parseInt(times / 60 % 60); 
    m = m < 10 ? '0' + m : m;
    s = parseInt(times % 60); 
    s = s < 10 ? '0' + s : s;
    return  d + '天' + h + '时' + m + '分' + s + '秒 ';
}
console.log(CountDown('2023-04-19 00:00'));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值