通過實例解析javascript Date對象屬性及方法
日常生活中,各種形式的時間字符到處都是。時間觀念的產(chǎn)生,時間單位、計時工具的發(fā)明,給人類帶來的變化實在一言難盡。今天就來談?wù)勅掌谀切┦聝?。一起來看?JavaScript 中的日期對象 Date。
獲取月份天數(shù)
// 獲取月份天數(shù) function getMonthDayCount(year, month) { return new Date(year, month, 0).getDate(); } console.log(getMonthDayCount(2017, 10)); // 31
Date 第三個參數(shù)的本質(zhì)跟 setDate 是一樣的。
因為 date 為 0 時自動退到上個月的最后一天,所以這里月份也不需要減,正好的。
獲取所有月份天數(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]
這個算是上面的延伸,不多解釋。
是否是閏年
function isLeapYear(year) { return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0); }
這是網(wǎng)上的web前端開發(fā)里相關(guān)代碼,相信大多數(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 ]
這樣看,是不是就非常簡單容易理解了。
而且都不需要記,是不是想忘都忘不了?
天數(shù)加減操作
之前看到有人用相對秒數(shù)在計算幾天前或幾天后,甚至還在算跨月,跨年的情況。
其實直接 setDate 就好了,自動處理 跨月,跨年 的情況。
// 10天后是幾月幾號
var dt = new Date('2016-12-25');
dt.setDate(dt.getDate() + 10);
console.log(dt.toLocaleDateString()); // 2017/1/4
// 10天前是幾月幾號
var dt = new Date('2017-01-04');
dt.setDate(dt.getDate() - 10);
console.log(dt.toLocaleDateString()); // 2016/12/25
下面我將JavaScript Date 對象的對象和方法總結(jié)成一個表,讓大家參考,也可以關(guān)注javascript參考手冊。
Date 對象屬性
屬性 | 描述 |
---|---|
constructor | 返回對創(chuàng)建此對象的 Date 函數(shù)的引用。 |
prototype | 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td> |
Date 對象方法
方法 | 描述 |
---|---|
Date() | 返回當(dāng)日的日期和時間。 |
getDate() | 從 Date 對象返回一個月中的某一天 (1 ~ 31)。 |
getDay() | 從 Date 對象返回一周中的某一天 (0 ~ 6)。 |
getMonth() | 從 Date 對象返回月份 (0 ~ 11)。 |
getFullYear() | 從 Date 對象以四位數(shù)字返回年份。 |
getYear() | 請使用 getFullYear() 方法代替。 |
getHours() | 返回 Date 對象的小時 (0 ~ 23)。 |
getMinutes() | 返回 Date 對象的分鐘 (0 ~ 59)。 |
getSeconds() | 返回 Date 對象的秒數(shù) (0 ~ 59)。 |
etMilliseconds() | 返回 Date 對象的毫秒(0 ~ 999)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒數(shù)。 |
getTimezoneOffset() | 返回本地時間與格林威治標(biāo)準(zhǔn)時間 (GMT) 的分鐘差。 |
getUTCDate() | 根據(jù)世界時從 Date 對象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根據(jù)世界時從 Date 對象返回周中的一天 (0 ~ 6)。 |
getUTCMonth() | 根據(jù)世界時從 Date 對象返回月份 (0 ~ 11)。 |
getUTCFullYear() | 根據(jù)世界時從 Date 對象返回四位數(shù)的年份。 |
getUTCHours() | 根據(jù)世界時返回 Date 對象的小時 (0 ~ 23)。 |
getUTCMinutes() | 根據(jù)世界時返回 Date 對象的分鐘 (0 ~ 59)。 |
getUTCSeconds() | 根據(jù)世界時返回 Date 對象的秒鐘 (0 ~ 59)。 |
getUTCMilliseconds() | 根據(jù)世界時返回 Date 對象的毫秒(0 ~ 999)。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)。 |
setDate() | 設(shè)置 Date 對象中月的某一天 (1 ~ 31)。 |
setMonth() | 設(shè)置 Date 對象中月份 (0 ~ 11)。 |
setFullYear() | 設(shè)置 Date 對象中的年份(四位數(shù)字)。 |
setYear() | 請使用 setFullYear() 方法代替。 |
setHours() | 設(shè)置 Date 對象中的小時 (0 ~ 23)。 |
setMinutes() | 設(shè)置 Date 對象中的分鐘 (0 ~ 59)。 |
setSeconds() | 設(shè)置 Date 對象中的秒鐘 (0 ~ 59)。 |
setMilliseconds() | 設(shè)置 Date 對象中的毫秒 (0 ~ 999)。 |
setTime() | 以毫秒設(shè)置 Date 對象。 |
setUTCDate() | 根據(jù)世界時設(shè)置 Date 對象中月份的一天 (1 ~ 31)。 |
setUTCMonth() | 根據(jù)世界時設(shè)置 Date 對象中的月份 (0 ~ 11)。 |
setUTCFullYear() | 根據(jù)世界時設(shè)置 Date 對象中的年份(四位數(shù)字)。 |
setUTCHours() | 根據(jù)世界時設(shè)置 Date 對象中的小時 (0 ~ 23)。 |
setUTCMinutes() | 根據(jù)世界時設(shè)置 Date 對象中的分鐘 (0 ~ 59)。 |
setUTCSeconds() | 根據(jù)世界時設(shè)置 Date 對象中的秒鐘 (0 ~ 59)。 |
setUTCMilliseconds() | 根據(jù)世界時設(shè)置 Date 對象中的毫秒 (0 ~ 999)。 |
toSource() | 返回該對象的源代碼。 |
toString() | 把 Date 對象轉(zhuǎn)換為字符串。 |
toTimeString() | 把 Date 對象的時間部分轉(zhuǎn)換為字符串。 |
toDateString() | 把 Date 對象的日期部分轉(zhuǎn)換為字符串。 |
toGMTString() | 請使用 toUTCString() 方法代替。 |
toUTCString() | 根據(jù)世界時,把 Date 對象轉(zhuǎn)換為字符串。 |
toLocaleString() | 根據(jù)本地時間格式,把 Date 對象轉(zhuǎn)換為字符串。 |
toLocaleTimeString() | 根據(jù)本地時間格式,把 Date 對象的時間部分轉(zhuǎn)換為字符串。 |
toLocaleDateString() | 根據(jù)本地時間格式,把 Date 對象的日期部分轉(zhuǎn)換為字符串。 |
UTC() | 根據(jù)世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數(shù)。 |
valueOf() | 返回 Date 對象的原始值。 |
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js中判斷Object、Array、Function等引用類型對象是否相等
項目中有時會需要對引用類型進(jìn)行比較,如常見的object和array,我們知道,引用類型無法直接使用 == 或=== 取得期待結(jié)果,因此需要一個迭代的compare函數(shù)轉(zhuǎn)化成原始類型進(jìn)行比較2012-08-08解決mui框架中switch開關(guān)通過js控制開或者關(guān)狀態(tài)時小圓點不動的問題
今天小編就為大家分享一篇解決mui框架中switch開關(guān)通過js控制開或者關(guān)狀態(tài)時小圓點不動的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09js樹插件zTree獲取所有選中節(jié)點數(shù)據(jù)的方法
這篇文章主要介紹了js樹插件zTree獲取所有選中節(jié)點數(shù)據(jù)的方法,是對js樹插件zTree非常實用的操作,需要的朋友可以參考下2015-01-01