Date對象無處不在


0.前言

??看到網(wǎng)上那些大神寫的時間、鐘表各種酷炫,心里癢癢的,因此今天就來說一些關(guān)于時間對象的知識,希望自己也能寫出酷炫的鐘表時鐘,O(∩_∩)O哈哈~

1.了解時間

??首先來了解兩個時間:
???(1)格林尼時間(GMT):是英國郊區(qū)格林尼治天文臺的時間,因為地球自轉(zhuǎn)的問題,每個時區(qū)的時間是不一樣的。格林尼治天文臺所處的是經(jīng)度為0的地方,世界上一些重大的時間都是使用的格林尼治時間。
???(2)世界協(xié)調(diào)時間(UTC):也叫世界時間。就是1970年1月1日0時。


2.Date

??我們知道在不管是在移動端、還是PC端,都會用到時間對象Date,那么在JS中他是怎么來的呢?

JS中的Date類型是由早期Java中的java.util.Date類型基礎(chǔ)上構(gòu)建的。所以保存的是距離1970年1月1號0時的毫秒數(shù)來存儲時間的。

(1)Date的創(chuàng)建

??第一種:用Date()函數(shù)創(chuàng)建

var date1 = Date();
console.log(date1);
console.log(typeof date1);

運行結(jié)果:

捕獲.PNG

上面獲取的是系統(tǒng)當前的時間,通過打印看到這種創(chuàng)建方法的時間得到是一個字符串“string”。
??第二種:用構(gòu)造函數(shù)創(chuàng)建
這種方法又分四種類型:
1.不使用參數(shù),得到當前時間

var date2 = new Date();
console.log(date2);
console.log(typeof date2);

結(jié)果:

捕獲.PNG

和第一種方法的結(jié)果類似,都是得到當前時間,但是返回的數(shù)據(jù)類型是“object”。
2.使用參數(shù),得到當前時間
注意:參數(shù)是一個表示時間的字符串

var date3 = new Date("2008/08/08 12:34:56");
console.log(date3);

//省略時分秒默認為0(默認是標準時間)
var date4 = new Date("2008/08/08");
console.log(date4);
var date5 = new Date("2008/9/18");
console.log(date5);

var date6 = new Date("2008-08-08 12:34:56");
console.log(date6);
var date7 = new Date("2008-09-03");//8點
console.log(date7);
var date8 = new Date("2008-1-1");//0點
console.log(date8);

結(jié)果:

捕獲.PNG

從上面可以看到,當參數(shù)不同的時候,打印輸出的職業(yè)是不同的,只用年月日,沒有時間,打印輸出的結(jié)果是時間默認為0,時間的格式不一樣的話,打印出的時間點也不同。
3、參數(shù)是 年,月,日,時,分,秒,毫秒

var date9 = new Date(2015, 5, 12, 15, 67, 34, 654);
console.log(date9);

結(jié)果:

捕獲.PNG

注意:年月必須寫,月是從0開始,日是從1開始。
1、如果月份超過11,則年份自動增加
2、如果日期超過當月應(yīng)該有的天數(shù),月自動增加
3、時、分、秒、毫秒都如此
4、參數(shù)是一個數(shù)字

var date10 = new Date(2234);
console.log(date10);

結(jié)果:

捕獲.PNG

返回值:是距離1970年1月1日0點參數(shù)毫秒之后的時間
注意:對應(yīng)北京時間加8小時


3.Date對象的方法

這個比較簡單,直接上代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Date對象的方法</title>
</head>
<body>
    <script type="text/javascript">
        //得到當前時間
        var date = new Date();
        console.log(date);

        //得到年:getFullYear()
        console.log(date.getFullYear());
        //得到月:getMonth()
        console.log(date.getMonth());
        //得到日:getDate()
        console.log(date.getDate());
        //得到星期:getDay()
        console.log(date.getDay());
        //得到時:getHours()
        console.log(date.getHours());
        //得到分:getMinutes()
        console.log(date.getMinutes());
        //得到秒:getSeconds()
        console.log(date.getSeconds());
        //毫秒:getMilliseconds()
        console.log(date.getMilliseconds());
        //getTime():當前對象表示的時間距離1970年1月1號0時的毫秒數(shù)
        console.log(date.getTime());






        //設(shè)置年:setFullYear()
        date.setFullYear(1993);
        //設(shè)置月:
        //注意:月是從0開始的,如果月大于等于12,年份增加
        date.setMonth(5);
        //設(shè)置日期:setDate(),如果大于該月英因有的天數(shù),月增加
        date.setDate(17);
        //星期一般不設(shè)置

        //設(shè)置時:setHours(),如果大于23,日增加
        date.setHours(7);
        //設(shè)置分:setMinutes(),如果大于59,時增加
        date.setMinutes(54);
        //設(shè)置秒:setSeconds(),如果大于59,分增加
        date.setSeconds(33);
        //設(shè)置毫秒:setMilliseconds(),如果大于999,秒增加
        date.setMilliseconds(666);
        //設(shè)置距離1970年1月1號0時的毫秒數(shù)
        date.setTime(1000);
        console.log(date);




        //轉(zhuǎn)成字符串
        //第一個:toLocaleString():包含年月日時分秒
        console.log(date.toLocaleString());
        //第二個:toLocaleDateString();包含年月日
        console.log(date.toLocaleDateString());
        //第三個:toLocaleTimeString();包含時分秒
        console.log(date.toLocaleTimeString());




        //得到字符串表示的時間距離1970年1月1號0時的毫秒數(shù)
        var date1 = Date();
        console.log(Date.parse(date1));
    </script>
</body>
</html>

運行結(jié)果:

捕獲.PNG

4.Date對象間的運算

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Date對象間的運算</title>
</head>
<body>
    <script type="text/javascript">
        var date1 = new Date("2016-10-10 12:09:43");
        var date2 = new Date("2016-10-10 12:09:43");

        //兩個時間對象相減,得到的是這兩個對象之間相差的毫秒數(shù)
        console.log(date1 - date2);

        //將兩個時間字符串拼接在一起
        console.log(date1 + date2);

    </script>
</body>
</html>

5.總結(jié)

??以上上Date屬性和一些常用的方法,但這只是第一步,還有很多的,只是為大家給大家的開胃小菜罷了。希望打賞?。。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,441評論 6 13
  • 抄自http://javascript.ruanyifeng.com/stdlib/date.html概述Date...
    zjh111閱讀 5,303評論 0 2
  • 1. 概念 Date對象是JavaScript提供的日期和時間的操作接口。它可以表示的時間范圍是,1970年1月1...
    plainnany閱讀 2,129評論 0 1
  • 《你一路而來》 望著車窗外穿著草綠色棉衣的中年婦女,一手拿著煙卷,嘴里吐著煙氣,白色團霧隨著...
    黑漆板凳0閱讀 243評論 1 2
  • 今天,我與爸爸進行了一場激烈的球賽。 規(guī)則與往常一樣,一人一個球門。發(fā)球,我把球開到了客廳中間,爸爸馬...
    溫溫溫溫漁閱讀 320評論 0 2

友情鏈接更多精彩內(nèi)容