首頁(yè)技術(shù)文章正文

JavaScript Date對(duì)象常用方法有哪些?

更新時(shí)間:2021-11-17 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

JavaScript中的日期對(duì)象用來處理日期和時(shí)間。例如,秒殺活動(dòng)中日期的實(shí)時(shí)顯示、時(shí)鐘效果、在線日歷等。下面將對(duì)日期對(duì)象進(jìn)行詳細(xì)講解。

日期對(duì)象的使用

JavaScript中的日期對(duì)象需要使用new Date()實(shí)例化對(duì)象才能使用,Date()是日期對(duì)象的構(gòu)造函數(shù)。在創(chuàng)建日期對(duì)象時(shí),可以為Date()構(gòu)造函數(shù)傳入一些參數(shù),來表示具體的日期,其創(chuàng)建方式如下。

<script>
    // 方式1:沒有參數(shù),使用當(dāng)前系統(tǒng)的當(dāng)前時(shí)間作為對(duì)象保存的時(shí)間
    var datel = new Date();
    //輸出結(jié)果:Wed Nov 17 2021 14:59:56 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
    console.log(datel);
    // 方式2:傳入年、月、日、時(shí)、分、秒(月的范圍是0~11,即真實(shí)月份-1)
    var date2 =new Date(2019,10,16,10, 57,56);
    //輸出結(jié)果:Sat Nov 16 2019 10:57:56 GMT+0800(中國(guó)標(biāo)準(zhǔn)時(shí)間)
    console.log(date2);
    // 用字符串表示日期和時(shí)間
    var date3 = new Date('2019-10-16 10:57:56');
    // 輸出結(jié)果:Wed Oct 16 2019 10:57:56 GMT+0800(中國(guó)標(biāo)準(zhǔn)時(shí)間)
    console.log(date3);
</script>

在使用方式1時(shí),其返回的datel對(duì)象保存的是對(duì)象創(chuàng)建時(shí)的時(shí)間;使用方式2時(shí),最少需要指定年、月兩個(gè)參數(shù),后面的參數(shù)在省略時(shí)會(huì)自動(dòng)使用默認(rèn)值;使用方式3時(shí),最少需要指定年份。另外,當(dāng)傳人的數(shù)值大于合理范圍時(shí),會(huì)自動(dòng)轉(zhuǎn)換成相鄰數(shù)值(如方式2將月份設(shè)為-1表示去年12月,設(shè)為12表示明年1月)。

在獲取到日期對(duì)象后,直接輸出對(duì)象得到的是一個(gè)字符串 表示的日期和時(shí)間。如果想要用其他格式來表示這個(gè)日期和時(shí)間,可以通過調(diào)用日期對(duì)象的相關(guān)方法來實(shí)現(xiàn)。日期對(duì)象的常用方法分為get和set兩大類,分別如表1和表2所示。

Date對(duì)象的常用get方法

方法

作用

getFullYear() 獲取表示年份的4位數(shù)字
getMouth() 獲取月份,范圍為0~ 11 (0表示一月, 1表示二月,依次類推)
getDate() 獲取月份中的某一天,范圍1~31
getHours() 獲取小時(shí)數(shù),范圍為0~23
getMinutes() 獲取分鐘數(shù),范圍為0~59
getSeconds() 獲取秒數(shù),范圍為0~59
getMilliseconds() 獲取毫秒數(shù),范圍為0~999
getTime() 獲取從1970-01-01 00:00:00 距離Date對(duì)象所代表時(shí)間的毫秒數(shù)

表1


Date對(duì)象的常用get方法

方法

作用

setFullYear(value) 設(shè)置年份
setMouth(value) 設(shè)置月份
setDate(value) 設(shè)置月份中的某一天
setHours() 設(shè)置小時(shí)數(shù)
setMinutes() 設(shè)置分鐘數(shù)
setSeconds() 設(shè)置秒數(shù)
setMilliseconds() 設(shè)置毫秒數(shù)
setTime() 通過從1970-01-01 00:00:00 計(jì)時(shí)的毫秒數(shù)來設(shè)置時(shí)間

表2


下面我們通過具體代碼演示Date對(duì)象的使用,在控制臺(tái)中輸出當(dāng)前日期。

<script>
    var date = new Date();              // 基于當(dāng)前日期時(shí)間創(chuàng)建Date對(duì)象
    var year = date.getFullYear();      //獲取年
    var month = date.getMonth() + 1;    //獲取月,范圍為0~ 11 (0表示一月, 1表示二月,依次類推)
    var day = date.getDate();           //獲取日
    //通過數(shù)組將星期值轉(zhuǎn)換為字符串
    var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    //輸出date對(duì)象保存的時(shí)間,示例:今天是2021年11月17日星期三
    console.log('今天是' + year + '年'+ month + '月'+ day + '日' + week[date.getDate() % 7]);
</script>

1637137263871_運(yùn)行結(jié)果.jpg

在上述代碼中,第9行的week[date.getDay() % 7]用來從date對(duì)象中獲取星期值,然后作為數(shù)組的索引到week數(shù)組中取出對(duì)應(yīng)的星期字符串。

在開發(fā)中,還經(jīng)常需要將日期對(duì)象中的時(shí)間轉(zhuǎn)換成指定的格式,示例代碼如下。

<script>
    //返回當(dāng)前時(shí)間,格式為:時(shí):分:秒,用兩位數(shù)字表示
    function getTime() {
        var time = new Date();
        var h = time.getHours();
        h = h<10 ? '0'+ h:h;
        var m = time.getMinutes();
        m = m<10 ? '0'+ m:m;
        var s = time.getSeconds();
        s = s<10 ? '0' + s:s;
        return h +':'+ m +':'+ s;
    }
    console.log(getTime());     //輸出結(jié)果示例: 15:06:55
</script>

在上述代碼中,第6、8、10行代碼用來判斷給定數(shù)字是否為一位數(shù),如果是一位數(shù)則在前面加上“0”。



猜你喜歡

Math對(duì)象的常用方法有哪些?如何使用?

JavaScript中l(wèi)et和var和const有什么區(qū)別?

javascript開發(fā)工具有哪些?

黑馬程序員HTML&JS+前端課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!