1.日期物件
日期物件:
通過new Date()就能建立一個日期物件,這個物件中有當前系統時間的所有詳細資訊。
以下程式碼可以獲取當前時間:
<script>
var t = new Date();
console.log(t);
console.log(typeof t);
</script>
如果想不停列印當前的時間,可以看以下程式碼:
<script>
setInterval(function () {
var t = new Date();
console.log(t);
},1000);
2.日期物件的引數
引數:
(1)年月日 時分秒
new Date(2016,0,12,2,40,21);月是從0開始算,所以0表示的是1月
(2)字串
new Date(`Oct 27,2016 10:10:12`);
(3)時間戳
時間戳(獲取1970-01-01 00:00:00到目前日期物件的時間差(單位:毫秒))
以下程式碼,可以把註釋開啟,檢視效果:
<script>
var t= new Date(2016,0,12,2,40,21);//月是從0開始算,所以0表示的是1月。列印結果是Tue Jan 12 2016 02:40:21 GMT+0800 (CST)。
// var t= new Date("Oct 27,2016 10:10:12");//列印結果是Thu Oct 27 2016 10:10:12 GMT+0800 (CST)。
// var stemp= new Date().getTime();// 時間戳 距離 1970年1月1日0:0:0 的毫秒差。
// var t= new Date(stemp);//把時間戳傳進去,獲取對應的時間。列印的結果當前時間
// var t= new Date(0);//表示1970年1月1日0:0:0
// var t = new Date(stemp+10000*1000);//表示距離stmp10000秒之後的時間。
console.log(t);
</script>
3.獲取詳細時間和設定詳細時間
獲取詳細時間:
getFullYear(); 獲取年
getMonth(); 獲取月(月份從0開始計算)
getDate(); 獲取日
getDay(); 獲取天
getHours(); 獲取時
getMinutes(); 獲取分
getSeconds(); 獲取秒
getMilliseconds(); 獲取毫秒
getTime(); 獲取1970-01-01 00:00:00到目前日期物件的時間差(單位:毫秒)
設定詳細時間:
setFullYear() 設定年
setMonth() 設定月 (月份從0開始計算)
setDate() 設定日
setHours() 設定小時
setMinutes() 設定分鐘
setSeconds() 設定秒鐘
setMilliseconds() 設定毫秒
setTime() 設定1970-01-01 00:00:00到目前日期物件的時間差(單位:毫秒)
注意:
設定日期物件的時候只是在操作這個物件,沒有操作本機的系統時間
4.字元時鐘
以下是字元時鐘程式碼:
<body>
<div></div>
<script>
var div=document.getElementsByTagName("div")[0];
//函式作用是,當獲取的分秒小於0的時候,往前面加"0"。
function add0(num) {
if(num<10){
return "0"+num;
}else{
return num+"";
}
}
setInterval(function () {
var t=new Date();
var hour=t.getHours();//獲取時
var m=add0(t.getMinutes());//獲取分
var s=add0(t.getSeconds());//獲取秒
var time=hour+":"+m+":"+s;
div.innerHTML=time;
},1000);
</script>
</body>
5.計算這個月有多少天的三種方式
方式一:
<script>
//由於函式內部會計算每個月有多少天,當設定超出時,會溢位,得到的是下個月的時間。
var t=new Date();
var M=t.setMonth(0);//設著月份為1月
t.setDate(32);//設定天數為32天,但1月份只有31天則會溢位。則時間設定後是2月1號
console.log("2018年1月有"+(32-t.getDate())+"天");
</script>
方式二:
<script>
var t=new Date();
var M=t.setMonth(1);//設著月份為2月
t.setDate(0);//設定為0天,則會跳回上個月的最後一天。
console.log("2018年1月有"+(t.getDate())+"天");
</script>
方式三:
<script>
var t=new Date();
var M=t.setMonth(0);//設著月份為1月
t.setDate(32);//設定天數為32天,但1月份只有31天則會溢位。則時間設定後是2月1號
t.setDate(0);//設定為0天,則會跳回上個月的最後一天。
console.log("2018年1月有"+(t.getDate())+"天");
</script>