代码改变世界

Math常用api ,Date对象

2019-08-22 22:03  孤城凉梦  阅读(217)  评论(0编辑  收藏  举报

Math对象

Math对象所有的api,都不支持new一个对象来使用,而是直接通过构造函数来使用
Math.random()

 

Math对象常用api

  • Math.random() //返回0-1之间的随机数 [0,1)

  • Math.round(3.6) //四舍五入 4

  • 随机数如何设定范围

    固定套路:任意 min max之间取随机整数

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

0-10之间的数 5-10之间的数 10-20之间的数

  • max(num1, num2) //返回较大的数 可以写多个值;

  • min(num1, num2) //返回较小的数

  • abs(num) //绝对值

  • ceil(19.3) //12 向上取整

  • floor(11.8) //11 向下取整

  • Math.PI // π值;

  • Math.pow(底数,幂数) Math.pow(2,3)

十进制数字转16进制或8进制

 var  x = 110;
x.toString(2)//转为2进制
x.toString(8)//转为8进制
x.toString(16)//转为16进制
var x = "110"//这是一个二进制的字符串表示  注意这里不能是超过f的字母或者字符(不可以超过十六进制)
parseInt(x, 2)//把这个字符串当做二进制, 转为十进制

var x = "70"//这是一个八进制的字符串表示
parseInt(x, 8)//把这个字符串当做八进制, 转为十进制

var x = "ff"//这是一个十六进制的字符串表示
parseInt(x, 16)//把这个字符串当做十六进制, 转为十进制

parseInt方法是用于将字符串转为数字的方法。 接受两个参数。 第一个要转换的字符串,第二个是可选的, 如果没有值, 默认是10进制; 如果有值, 就是以该值为转换进制

案例:

编写一个函数,获得一个十六进制的随机颜色的字符串(例如:#20CD4F)

 

编写一个函数,得到一个十进制的随机颜色 如:rgb(2,133,12);

 

Date对象

日期对象创建

类型使用自 CTU(Coordinated Universal Time,国际协调时间)1970 年 1 月 1 日午夜(零时)开始经过的毫秒数来保存日期。Date 类型保存的日期能够精确到 1970 年 1 月 1 日之前或之后的 285616 年。

  • var d=new Date( ); 不传递任何参数默认返回当前时间

  • var d=new Date( '2015/12/2'); 在传入参数的情况下,获得的是传入的时间

                    01,不传参
    var now = new Date() //获取的是当前时间
    02,传参 自定义时间
    传字符串
    var date = new Date("2019/11/11[ 12:12:12]");
    传数字 多个参数
    var date = new Date(yyyy,MM,dd,hh,mm,ss);//月份-1
    时间戳: 距离1970年1月1日毫秒数
      日期对象  
                  date.getTime() 获取时间戳
    传一个时间戳
    var date = new Date(时间戳);

     

    日期对象常用api

    获取:
    d.getFullYear() 获取当前的四位数年份
    d.getMonth() 获取当前的月份 (从0开始) +1
    d.getDate() 获取当前的日期
    getDay() 获取星期   0 - 6   0是星期天
    getHours() 获取时
    getMinutes() 获取分钟
    getSeconds() 获取秒
    设置:
    setFullYear() 设置年份 参数四位数年份
    setMonth() 设置月份   参数 0-11
    setDate() 设置 日期   ****   1-31

    五天以后的时间

    ...
    toString()
    toLocaleString() 转换成本地格式的时间
    toLocaleDateString() 转换成本地格式的时间 去掉 时分秒
    toGMTString() 格林尼治标准时间 世界时

    将日期格式化成字符串

     要求封装函数,实现格式化日期格式

     

    日期转为毫秒数

  • Date.parse("2015-08-24") 获取1970年到设定时间的毫秒数

  • Date.getTime()

     

    计算两个日期的时间差值

    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+"天");
      }

    日期差值;

      var date1 = new Date('2013/04/02 18:00')
    var date2 = new Date('2013/04/02 19:22:21')
    var s1 = date1.getTime(),s2 = date2.getTime();
    var total = (s2 - s1)/1000;
    var day = parseInt(total / (24*60*60));//计算整数天数
    var afterDay = total - day*24*60*60;//取得算出天数后剩余的秒数
    var hour = parseInt(afterDay/(60*60));//计算整数小时数
    var afterHour = total - day*24*60*60 - hour*60*60;//取得算出小时数后剩余的秒数
    var min = parseInt(afterHour/60);//计算整数分
    var afterMin = total - day*24*60*60 - hour*60*60 - min*60;//取得算出分后剩余的秒数
    永动机
    setInterval(function(){},inter); 以毫秒为单位

    function fn(){

    }
    setInterval(fn,inter); 以毫秒为单位

    倒计时案例