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);