通過(guò)實(shí)例解析javascript Date對(duì)象屬性及方法
日常生活中,各種形式的時(shí)間字符到處都是。時(shí)間觀念的產(chǎn)生,時(shí)間單位、計(jì)時(shí)工具的發(fā)明,給人類帶來(lái)的變化實(shí)在一言難盡。今天就來(lái)談?wù)勅掌谀切┦聝?。一起?lái)看看 JavaScript 中的日期對(duì)象 Date。
獲取月份天數(shù)
// 獲取月份天數(shù)
function getMonthDayCount(year, month) {
return new Date(year, month, 0).getDate();
}
console.log(getMonthDayCount(2017, 10)); // 31
Date 第三個(gè)參數(shù)的本質(zhì)跟 setDate 是一樣的。
因?yàn)?date 為 0 時(shí)自動(dòng)退到上個(gè)月的最后一天,所以這里月份也不需要減,正好的。
獲取所有月份天數(shù)
function getAllMonthDayCount(year) {
var days = [31, new Date(year, 2, 0).getDate(), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
return days;
}
console.log(getAllMonthDayCount(2016));// [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
這個(gè)算是上面的延伸,不多解釋。
是否是閏年
function isLeapYear(year) {
return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
}
這是網(wǎng)上的web前端開(kāi)發(fā)里相關(guān)代碼,相信大多數(shù)人都用。但其實(shí)你真的理解或者能記住么?光是html和css就足夠多記的了
function isLeapYear(year) {
return new Date(year, 2, 0).getDate() === 29;
}
console.log([
isLeapYear(2000),
isLeapYear(2016),
isLeapYear(2017),
isLeapYear(2018)
]); // [ true, true, false, false ]
這樣看,是不是就非常簡(jiǎn)單容易理解了。
而且都不需要記,是不是想忘都忘不了?
天數(shù)加減操作
之前看到有人用相對(duì)秒數(shù)在計(jì)算幾天前或幾天后,甚至還在算跨月,跨年的情況。
其實(shí)直接 setDate 就好了,自動(dòng)處理 跨月,跨年 的情況。
// 10天后是幾月幾號(hào)
var dt = new Date('2016-12-25');
dt.setDate(dt.getDate() + 10);
console.log(dt.toLocaleDateString()); // 2017/1/4
// 10天前是幾月幾號(hào)
var dt = new Date('2017-01-04');
dt.setDate(dt.getDate() - 10);
console.log(dt.toLocaleDateString()); // 2016/12/25
下面我將JavaScript Date 對(duì)象的對(duì)象和方法總結(jié)成一個(gè)表,讓大家參考,也可以關(guān)注javascript參考手冊(cè)。
Date 對(duì)象屬性
| 屬性 | 描述 |
|---|---|
| constructor | 返回對(duì)創(chuàng)建此對(duì)象的 Date 函數(shù)的引用。 |
| prototype | 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td> |
Date 對(duì)象方法
| 方法 | 描述 |
|---|---|
| Date() | 返回當(dāng)日的日期和時(shí)間。 |
| getDate() | 從 Date 對(duì)象返回一個(gè)月中的某一天 (1 ~ 31)。 |
| getDay() | 從 Date 對(duì)象返回一周中的某一天 (0 ~ 6)。 |
| getMonth() | 從 Date 對(duì)象返回月份 (0 ~ 11)。 |
| getFullYear() | 從 Date 對(duì)象以四位數(shù)字返回年份。 |
| getYear() | 請(qǐng)使用 getFullYear() 方法代替。 |
| getHours() | 返回 Date 對(duì)象的小時(shí) (0 ~ 23)。 |
| getMinutes() | 返回 Date 對(duì)象的分鐘 (0 ~ 59)。 |
| getSeconds() | 返回 Date 對(duì)象的秒數(shù) (0 ~ 59)。 |
| etMilliseconds() | 返回 Date 對(duì)象的毫秒(0 ~ 999)。 |
| getTime() | 返回 1970 年 1 月 1 日至今的毫秒數(shù)。 |
| getTimezoneOffset() | 返回本地時(shí)間與格林威治標(biāo)準(zhǔn)時(shí)間 (GMT) 的分鐘差。 |
| getUTCDate() | 根據(jù)世界時(shí)從 Date 對(duì)象返回月中的一天 (1 ~ 31)。 |
| getUTCDay() | 根據(jù)世界時(shí)從 Date 對(duì)象返回周中的一天 (0 ~ 6)。 |
| getUTCMonth() | 根據(jù)世界時(shí)從 Date 對(duì)象返回月份 (0 ~ 11)。 |
| getUTCFullYear() | 根據(jù)世界時(shí)從 Date 對(duì)象返回四位數(shù)的年份。 |
| getUTCHours() | 根據(jù)世界時(shí)返回 Date 對(duì)象的小時(shí) (0 ~ 23)。 |
| getUTCMinutes() | 根據(jù)世界時(shí)返回 Date 對(duì)象的分鐘 (0 ~ 59)。 |
| getUTCSeconds() | 根據(jù)世界時(shí)返回 Date 對(duì)象的秒鐘 (0 ~ 59)。 |
| getUTCMilliseconds() | 根據(jù)世界時(shí)返回 Date 對(duì)象的毫秒(0 ~ 999)。 |
| parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)。 |
| setDate() | 設(shè)置 Date 對(duì)象中月的某一天 (1 ~ 31)。 |
| setMonth() | 設(shè)置 Date 對(duì)象中月份 (0 ~ 11)。 |
| setFullYear() | 設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。 |
| setYear() | 請(qǐng)使用 setFullYear() 方法代替。 |
| setHours() | 設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。 |
| setMinutes() | 設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。 |
| setSeconds() | 設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。 |
| setMilliseconds() | 設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。 |
| setTime() | 以毫秒設(shè)置 Date 對(duì)象。 |
| setUTCDate() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中月份的一天 (1 ~ 31)。 |
| setUTCMonth() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的月份 (0 ~ 11)。 |
| setUTCFullYear() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。 |
| setUTCHours() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。 |
| setUTCMinutes() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。 |
| setUTCSeconds() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。 |
| setUTCMilliseconds() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。 |
| toSource() | 返回該對(duì)象的源代碼。 |
| toString() | 把 Date 對(duì)象轉(zhuǎn)換為字符串。 |
| toTimeString() | 把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。 |
| toDateString() | 把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。 |
| toGMTString() | 請(qǐng)使用 toUTCString() 方法代替。 |
| toUTCString() | 根據(jù)世界時(shí),把 Date 對(duì)象轉(zhuǎn)換為字符串。 |
| toLocaleString() | 根據(jù)本地時(shí)間格式,把 Date 對(duì)象轉(zhuǎn)換為字符串。 |
| toLocaleTimeString() | 根據(jù)本地時(shí)間格式,把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。 |
| toLocaleDateString() | 根據(jù)本地時(shí)間格式,把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。 |
| UTC() | 根據(jù)世界時(shí)返回 1970 年 1 月 1 日 到指定日期的毫秒數(shù)。 |
| valueOf() | 返回 Date 對(duì)象的原始值。 |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS使用Date對(duì)象實(shí)時(shí)顯示當(dāng)前系統(tǒng)時(shí)間簡(jiǎn)單示例
- js通過(guò)Date對(duì)象實(shí)現(xiàn)倒計(jì)時(shí)動(dòng)畫效果
- javascript中神奇的 Date對(duì)象小結(jié)
- JavaScript 中Date對(duì)象的格式化代碼方法匯總
- JavaScript日期對(duì)象(Date)基本用法示例
- JS中使用new Date(str)創(chuàng)建時(shí)間對(duì)象不兼容firefox和ie的解決方法(兩種)
- javascript中Date對(duì)象的使用總結(jié)
- JavaScript中的 Date(日期)對(duì)象及使用示例
相關(guān)文章
JavaScript腳本語(yǔ)言是什么_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JavaScript是什么?這篇文章主要介紹了一種廣泛用于客戶端Web開(kāi)發(fā)的腳本語(yǔ)言JavaScript,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
JavaScript設(shè)計(jì)模式之職責(zé)鏈模式
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之職責(zé)鏈模式,對(duì)設(shè)計(jì)模式感興趣的同學(xué),可以參考下2021-04-04
JavaScript模擬實(shí)現(xiàn)網(wǎng)易云輪播效果
這篇文章主要介紹了如何利用JavaScript模仿網(wǎng)易云輪播效果的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下2022-04-04
微信公眾平臺(tái) 發(fā)送模板消息(Java接口開(kāi)發(fā))
這篇文章主要介紹了微信公眾平臺(tái) 發(fā)送模板消息(Java接口開(kāi)發(fā)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
詳解使用fetch發(fā)送post請(qǐng)求時(shí)的參數(shù)處理
這篇文章主要介紹了詳解使用fetch發(fā)送post請(qǐng)求時(shí)的參數(shù)處理的相關(guān)資料,需要的朋友可以參考下2017-04-04

