1. 程式人生 > >javaScript複習(六)Math物件與MathAPI 、Date物件與DateAPI

javaScript複習(六)Math物件與MathAPI 、Date物件與DateAPI

Math:

專門執行數學計算的物件,封裝了數學計算中常用的常量

1. 取整:3種:         

       上取整: Math.ceil(n)

       下取整: Math.floor(n)

       四捨五入取整: Math.round(n);

round 與 toFixed相比

      toFixed  Number物件      按任意小數位數      *返回字串*

      round    Math物件               只能取整!           返回數字

例:var n=1.23;

var a=n.toFixed(1);

console.log(1+a);         //輸出: 11.2

var n=1.23;

var a=n.toFixed(1);

console.log(Number(a)+1);  //輸出 2.2

2. 乘方/開平方:

      乘方:Math.pow(n,m):計算n的m次方

      開平方: Math.sqrt(n):計算n的平方根

3. 獲取最大值/最小值;

      Math.max(a,b,c...)

      Math.min(a,b,c...)

  ***固定套路:變相實現獲取陣列中最大值

      Math.max.apply(Math,arr); 等於-->  Math.max(arr[0],arr[1],...)

  經過測試,Math所在的地方只要不為空,可以用任何字元替換Math,都可以得出最大值

4. 獲取隨機數:

Math.random();獲得一個在0<=n<1範圍內的小數, 得到的值得範圍0<=n<1

任意min到max之間取一個隨機整數:  parseInt(Math.random()*(max-min+1)+min)

   或Math.floor(Math.random()*(max-min+1)+min)  *不能用上取整或四捨五入取整*

 例:在60~100之間取隨機整數       60<=X<=100 可以先看做 60<=X<101

    Math.random()*(100-60)              //    0<=X<40

    Math.random()*(100-60+1)            //    0<=X<41

 Math.random()*(100-60+1)+60         //    60<=X<101

parseInt(Math.random()*(100-60+1)+60)  //   向下取整後60 <= X <=100,如果此時採用上取整,會取到101的值

 

Date:

封裝了一個時間點,提供了對時間和日期的操作API

1、Date中封裝了從1970年1月1日0點0分0秒至今的毫秒數

2、建立Date物件常用的四種方式

    ① var now=new Date();  建立一個新日期物件同時,儲存了*客戶端*當前時間點的毫秒數。——獲得當前時間

    ② var time=new Date("xxxx/xx/xx [xx:xx:xx]")   自定義時間物件

    ③ var time=new Date(年,月-1,日[,時,分,秒)    自定義時間物件

    ④ var date1=new Date();   //new Date(毫秒數)  

        var date2=new Date(date1.getTime());  通過複製日期物件建立新物件

3、將日期物件中的日期和時間轉化為字串

date.toLocaleString();將日期物件轉換為字串時,採用的是本地時間,顯示的是地方日期的格式 
date.toUTCString();將日期物件轉換為字串時,採用的是世界時間。 顯示的是世界日期的格式 

date.toLocaleDateString(); 僅轉為日期部分

date.toLocaleTimeString(); 僅轉為時間部分

例:    

var date=new Date();

var a=date.toUTCString();//採用的是世界時間。

var b=date.toLocaleString();//採用的是本地時間

var c=date.toLocaleDateString();//僅轉為日期部分

var d=date.toLocaleTimeString();//僅轉為時間部分

console.log(a);console.log(b);

console.log(c);console.log(d);

 Fri, 16 Nov 2018 02:18:26 GMT

 2018/11/16 上午10:18:26

 2018/11/16

 上午10:18:26

4、在Date中年份,月份,星期,天的數字表示方法

  Year  :年份,以四位數顯示

Month:月份,值範圍為0-11,一月份為0,十二月為11

Date : 日期/幾號,表示一個月中的某一天,例如12月5號,5就是Date

  取值範圍1-31,取得的值是與自身相同,例如5號值就是為5

Day:星期幾,值為0-6,週日為0

 週日      週一     週二     週三     週四     週五     週六

   0           1           2          3          4           5          6

5、獲得日期物件中的日期和時間

date.getTime();//返回日期物件中的時間與1970年1月1日0時0分0秒所間隔的毫秒數

date.getFullYear();//獲取年份

date.getMonth();//獲取月份

date.getDate();//獲取日期

date.getDay();獲取星期幾

date.getHours();//返回小時部分

date.getMinutes();//返回分鐘部分

date.getSeconds();//返回秒鐘部分

date.getMilliseconds();//返回毫秒部分

6、設定日期物件中的日期和時間(一般獲得日期與設定日期是同時進行的)

date.setFullYear();

date.setMonth();

date.setDate();

*星期沒有set方法!

7、 對日期進行計算

   ① 兩日期物件直接相減,結果是毫秒差!

   例:計算從2000年到現在有多少天

            var now=new Date();

            var time=new Date(2000/01/01);

            var days=parseInt((now-time)/1000/3600/24);

           console.log("已經過了"+days+"天");   // 已經過了17851天

    ② 對任意分量做加減:先用get取出來,做計算,再用set放回去

           date.setXXX(date.getXXX()+-n);   //*直接修改原日期物件*

           例:2015年籤的合同,有效期3年,求合同到期時間,到期前一週發出提示

           var startdate=new Date("2015/01/01");

           var enddate=new Date(startdate.getTime());

           enddate.setFullYear(enddate.getFullYear()+3);

           console.log(enddate.toLocaleDateString());

           var tishi=new Date(enddate.getTime());

           tishi.setDate(tishi.getDate()-7);

           console.log(tishi.toLocaleDateString());

    輸出:          2018/1/1          //這是合同到期時間

                        2017/12/25        //這是應該發出提示的時間

8、獲得格式化後的當前時間

  var d=new Date();

  var year=d.getFullYear();

  var month=change(d.getMonth()+1);

  var day=change(d.getDate());

  var hour=change(d.getHours());

  var minute=change(d.getMinutes());

  var second=change(d.getSeconds());

  function change(t){

    if(t<10){

     return "0"+t;

    }else{

     return t;

    }

  }

  var time=year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;

console.log(time);