关于Math和Date

一.关于Math

序言:
用来处理数学问题不需要创建对象直接类型名.方法:Math.方法()

1.随机数random
在这里插入图片描述
在这里插入图片描述

2.取整方法round,ceil,floor
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.绝对值abs

Math.abs()是返回一个数的绝对值
在这里插入图片描述
4.最大值Max
在这里插入图片描述
在这里插入图片描述

5.最小值min

Math.min()
得到的是你传入的几个数字之中最大的那个数字
console.log(Math.min(1.2.3.4))//1

6.Math的对象方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面展示一些 内联代码片

Math的对象部分示例

        var randNum = Math.random() //0-1之间随机数

        // console.log('randNum :',randNum)
        // console.log('randNum :' + randNum)
        // console.log(`randNum :${randNum}`)

        var num = 98.4
        console.log('parseInt(num) :', parseInt(num) ); //取整

        console.log( 'Math.ceil(num) : ', Math.ceil(num) );

        console.log( 'Math.floor(num) : ', Math.floor(num) );
         
        console.log( 'Math.round(num) : ', Math.round(num) );

        var num1 = -98
        console.log( 'Math.abs(num1) : ', Math.abs(num1) );

        console.log('Math.max() :', Math.max(89,79,99));

下面展示一些 内联代码片

计数器对象

        function getRandomNum() {
            var numObj = {} //计数器对象
            for (var i = 0; i < 10000; i++) {
                var randNum = Math.floor(Math.random() * 10) // 0~10

                //判断计数器对象有没有此随机数,如果没有,放到对象中,值赋值给1,如果有, 值加一
                if (numObj[randNum]) {
                    //已经存在
                    numObj[randNum]++
                } else {
                    //不存在
                    numObj[randNum] = 1
                }
            }

            for(var key in numObj){
                console.log(`${key} : ${numObj[key]}`);
            }
        }

        getRandomNum()

下面展示一些 内联代码片

工具函数

        // console.log( ' Math.random() * 10 + 10 ',  (Math.random() * 10 + 10));

        function getRandom(x, y) {
            var m = Math.min(x,y)
            var n = Math.max(x,y)
            return Math.floor(Math.random() * (n - m) + m)
        }

        var randomNum = getRandom(500, 100)
        console.log(randomNum);

二.数字转换进制

1.进制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面展示一些 内联代码片

数字转换进制示例

        var num = 0xA
        var num1 = 010
        console.log(num, num1);

        // 十进制->其它进制
        var num2 = 100
        console.log( 'num2.toString(2)  :', num2.toString(2) );
        console.log( 'num2.toString(8)  :', num2.toString(8) );
        console.log( 'num2.toString(16)  :', num2.toString(16) );

        // 其它进制 -> 十进制
        var str = 100
        console.log('parseInt(str,2) :', parseInt(str,2) );

2.示例随机颜色
在这里插入图片描述
在这里插入图片描述
下面展示一些 内联代码片

随机颜色示例

        function getRandom(x, y) {
            var m = Math.min(x, y)
            var n = Math.max(x, y)
            return Math.floor(Math.random() * (n - m) + m)
        }

        function setBakctroundColor() {
            var r = getRandom(0, 256)
            var g = getRandom(0, 256)
            var b = getRandom(0, 256)
            
            var bg = `rgb(${r}, ${g}, ${b})`
            console.log(bg);
            //设置背景颜色给div
            document.querySelector('div').style.backgroundColor = bg
        }
        /*
          十六进制
        */
        function setBackgroundColorTwo(){
            var r = getRandom(0, 256) //123 => F1  
            var g = getRandom(0, 256) // 34 => 15
            var b = getRandom(0, 256)  // 125 => B2

            //  #F115B2
            var r16 = r.toString(16)
            var g16 = g.toString(16)
            var b16 = b.toString(16)
            var bgValue = `#${r16}${g16}${b16}`
            console.log(bgValue);

            //设置背景颜色给div
            document.querySelector('div').style.backgroundColor = bgValue

        }

        setBackgroundColorTwo()

三.关于Date

1.创建时间日期对象new Date()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述2.new Date() 传递的参数多种方法

在这里插入图片描述
在这里插入图片描述
3. new Date()的常用的方法

    a.getFullYear

在这里插入图片描述

       b.getMonth

在这里插入图片描述

       c.getDate

在这里插入图片描述

       d.getHours

在这里插入图片描述

       e.getMinutes

在这里插入图片描述

       f.getSeconds

在这里插入图片描述

       g.getDay

在这里插入图片描述

       h.getTime

在这里插入图片描述
注:(格林威治时间):1970年1月1日00:00:00是计算机时间原点所有计算机都遵从这个原则

下面展示一些 内联代码片

Date常用方法示例

        var time = new Date() //当前时间
        console.log('time.getFullYear()  :', time.getFullYear())
        console.log('time.getMonth()  :', time.getMonth()+1)
        console.log('time.getDate()  :', time.getDate())

        console.log('time.getHours()  :', time.getHours())
        console.log('time.getMinutes()  :', time.getMinutes())
        console.log('time.getSeconds()  :', time.getSeconds())

        console.log('time.getDay()  :', time.getDay())
        console.log('time.getTime()  :', time.getTime())

4.日期时间格式化
在这里插入图片描述
在这里插入图片描述
下面展示一些 内联代码片

// 格式化时间日期案例

        /*
          格式化日期时间
        */
        function formateCurrentDate() {
            var time = new Date() //当前日期时间对象
            var year = time.getFullYear() //年
            var month = time.getMonth() //月
            var date = time.getDate() //日期
            var hours = time.getHours() //小时
            var minues = time.getMinutes() //分钟
            var seconds = time.getSeconds() //秒

            //2021-12-02 15:24:49
            var dateStr = `${year}-${month+1}-${date} ${hours}:${minues}:${seconds}`
            return dateStr
        }

        var time = formateCurrentDate()
        console.log(time);

5.格式化日期时间工具函数
下面展示一些 内联代码片

格式化时间日期工具函数示例

        function dateFtt(fmt, date) {
            var o = {
                "M+": date.getMonth() + 1, //月份
                "d+": date.getDate(), //日
                "h+": date.getHours(), //小时
                "m+": date.getMinutes(), //分
                "s+": date.getSeconds(), //秒
                "q+": Math.floor((date.getMonth() + 3) / 3), //季度
                S: date.getMilliseconds(), //毫秒
            };
            if (/(y+)/.test(fmt))
                fmt = fmt.replace(
                    RegExp.$1,
                    (date.getFullYear() + "").substr(4 - RegExp.$1.length)
                );
            for (var k in o)
                if (new RegExp("(" + k + ")").test(fmt))
                    fmt = fmt.replace(
                        RegExp.$1,
                        RegExp.$1.length == 1 ?
                        o[k] :
                        ("00" + o[k]).substr(("" + o[k]).length)
                    );
            return fmt;
        }

        //创建时间格式化显示
        function formateDate() {
            var crtTime = new Date(); //当前时间
            // return dateFtt("yyyy-MM-dd hh:mm:ss", crtTime);
            // return dateFtt("yyyy年MM月dd日 hh:mm:ss", crtTime);  
            // return dateFtt("yyyy/MM/dd hh:mm:ss", crtTime);  
            return dateFtt("yyyy年MM月dd日", crtTime);  

        }


        var date1 = formateDate()
        console.log(date1);

6.计算时间差

下面展示一些 内联代码片

计算时间差示例

        var time1 = new Date('2019-01-01 00:00:00')
        var time2 = new Date('2019-01-03 04:55:34')

        var t1 = time1.getTime()
        var t2 = time2.getTime()

        var t3 = t2 - t1 // 相差毫秒数
        // 相差的天,小时,分钟,秒
        // 1天= 24小时  1小时= 60分钟  1分钟 = 60秒  1s = 1000毫秒
        // 1天 = 24 * 60 * 60 * 1000
        var day1 = t3 / (24 * 60 * 60 * 1000)
        day1 = Math.floor(day1)
        console.log(day1);

        // 总相差毫秒数 - 相差天数的毫秒数 = 剩下相差小时分钟秒 毫秒数
        var hourseSeconds =  t3 - day1 * (24 * 60 * 60 * 1000) 
        var hourse = hourseSeconds/(60*60*1000)
        hourse = Math.floor(hourse)
        console.log(hourse);

        //分钟和秒 毫秒数 = hourseSeconds - hourse * 60*60*1000
        var minuesSeconds = hourseSeconds - hourse * 60*60*1000
        var minue = minuesSeconds/(60*1000)
        minue = Math.floor(minue)
        console.log(minue);

例如:我们现在计算一下 2019-01-01 00:00:00 到 2019-01-03 04:55:34 的时间差

1.先获取两个时间点到 格林威治时间(1970年1月1日(00:00:00 GMT)) 的毫秒数
在这里插入图片描述
2.两个时间相减,得到两个时间点之间相差的毫秒数

在这里插入图片描述
3.毫秒转换成天
在这里插入图片描述
4.把我们计算的毫秒数换算成时间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值