JS基礎入門篇(十八)—日期物件

樑志芳發表於2019-02-16

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>

相關文章