JavaScript Date對象用于處理日期和時間扑馁。
創(chuàng)建日期
可以通過 new 關(guān)鍵詞來定義 Date 對象铁追。
var date1 = new Date();//返回Date對象
console.log(date1);//Thu Oct 14 2021 21:58:44 GMT+0800 (中國標準時間)
var date2 = new Date(1631454531235);//返回指定時間戳的Date對象
console.log(date2);//Sun Sep 12 2021 21:48:51 GMT+0800 (中國標準時間)
var date3 = new Date("2021.10.05 15:20:30");//返回字符串日期的Date對象
console.log(date3);//Tue Oct 05 2021 15:20:30 GMT+0800 (中國標準時間)
var date4 = new Date(2021,10,10);//返回指定格式日期的Date對象
console.log(date4);//Wed Nov 10 2021 00:00:00 GMT+0800 (中國標準時間)
new Date(2021,10,10);表示的日期是2021年11月10日妖混。
時間戳
JS 的時間戳指的是格林威治標準時間1970,1,1零時绒窑,距離現(xiàn)在的毫秒數(shù)僧诚。格林威治標準時間是零時區(qū)的地方時丸逸。
var now = Date.now();//返回現(xiàn)在的時間戳
console.log(now);//1634221792520
var date1 = new Date();//返回Date對象,可以獲取指定對象的時間戳
console.log(date.getTime());//1634221792521
console.log(date.valueOf());//1634221792521
var now2 = Date.parse(new Date());//返回Date對象的時間戳
console.log(now2);//1634221923000
設(shè)置時間
通過使用針對日期對象的方法儒恋,我們可以很容易地對日期進行操作善绎。
var date = new Date();
date.setFullYear(2022,0,1);//返回指定日期時間戳
console.log(date);//1641048099469
var date = new Date();
date.setDate(date.getDate()+10);//10天后
console.log(date);//Sun Oct 24 2021 22:44:31 GMT+0800 (中國標準時間)
如果增加天數(shù)會改變月份或者年份,那么日期對象會自動完成這種轉(zhuǎn)換诫尽。
日期比較
通過日期轉(zhuǎn)換時間戳可以很容易比較日期的前后
var time = new Date().setFullYear(2021,10,24);//返回指定日期時間戳
var now = Date.now();//返回當前時間戳
time-now > 0 ? console.log("日期在以后") : console.log("日期在以前");
格式化日期
很多時候我們需要指定格式的日期禀酱,這里我在網(wǎng)上找了個JS格式化日期的函數(shù),拿來即用挺好的牧嫉,感謝大佬剂跟。
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
// 獲取年份 // ①
if (/(y+)/i.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
// ②
if (new RegExp("(" + k + ")", "i").test(fmt)) {
fmt = fmt.replace(
RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
var now = new Date();
console.log(now.format("YY-MM-DD"));//21-10-14
console.log(now.format("YYYY/MM/DD"));//2021/10/14
日期常用和方法
方法 | 描述 |
---|---|
getDate() | 返回月中的第幾天(從 1 到 31)。 |
getDay() | 返回星期幾(0-6)酣藻。 |
getFullYear() | 返回年份曹洽。 |
getHours() | 返回小時(從 0-23)。 |
getMilliseconds() | 返回毫秒(0-999)辽剧。 |
getMinutes() | 返回分鐘(從 0-59)送淆。 |
getMonth() | 返回月份(從 0-11)。 |
getSeconds() | 返回秒數(shù)(從 0-59)怕轿。 |
getTime() | 返回自 1970 年 1 月 1 日午夜以來與指定日期的毫秒數(shù)偷崩。 |
getTimezoneOffset() | 返回 UTC 時間與本地時間之間的時差,以分鐘為單位撞羽。 |
getUTCDate() | 根據(jù)世界時阐斜,返回月份中的第幾天(從 1 到 31)。 |
getUTCDay() | 根據(jù)世界時放吩,返回星期幾(0-6)智听。 |
getUTCFullYear() | 根據(jù)世界時,返回年份渡紫。 |
getUTCHours() | 根據(jù)世界時到推,返回小時(0-23)。 |
getUTCMilliseconds() | 根據(jù)世界時惕澎,返回毫秒數(shù)(0-999)莉测。 |
getUTCMinutes() | 根據(jù)世界時,返回分鐘(0-59)唧喉。 |
getUTCMonth() | 根據(jù)世界時捣卤,返回月份(0-11)。 |
getUTCSeconds() | 根據(jù)世界時八孝,返回秒數(shù)(0-59)董朝。 |
方法 | 描述 |
---|---|
now() | 返回自 1970 年 1 月 1 日午夜以來的毫秒數(shù)。 |
parse() | 解析日期字符串并返回自 1970 年 1 月 1 日以來的毫秒數(shù)干跛。 |
setDate() | 設(shè)置 Date 對象中月的某一天子姜。 |
setFullYear() | 設(shè)置日期對象的年份 |
setHours() | 設(shè)置日期對象的小時。 |
setMilliseconds() | |
setMinutes() | 設(shè)置日期對象的分鐘數(shù)楼入。 |
setMonth() | 設(shè)置日期對象的月份哥捕。 |
setSeconds() | 設(shè)置日期對象的秒數(shù)。 |
setTime() | 將日期設(shè)置為 1970 年 1 月 1 日之后/之前的指定毫秒數(shù)嘉熊。 |
setUTCDate() | 根據(jù)世界時遥赚,設(shè)置 Date 對象中月份的一天。 |
setUTCFullYear() | 根據(jù)世界時阐肤,設(shè)置日期對象的年份凫佛。 |
setUTCHours() | 根據(jù)世界時,設(shè)置日期對象的小時孕惜。 |
setUTCMilliseconds() | 根據(jù)世界時愧薛,設(shè)置日期對象的毫秒數(shù)。 |
setUTCMinutes() | 根據(jù)世界時诊赊,設(shè)置日期對象的分鐘數(shù)厚满。 |
setUTCMonth() | 根據(jù)世界時,設(shè)置日期對象的月份碧磅。 |
setUTCSeconds() | 根據(jù)世界時碘箍,設(shè)置日期對象的秒數(shù)。 |
toDateString() | 將 Date 對象的日期部分轉(zhuǎn)換為可讀字符串鲸郊。 |
toISOString() | 使用 ISO 標準將日期作為字符串返回丰榴。 |
toJSON() | 以字符串形式返回日期,格式為 JSON 日期秆撮。 |
toLocaleDateString() | 使用區(qū)域設(shè)置約定將 Date 對象的日期部分作為字符串返回四濒。 |
toLocaleTimeString() | 使用區(qū)域設(shè)置約定將 Date 對象的時間部分作為字符串返回。 |
toLocaleString() | 使用區(qū)域設(shè)置約定將 Date 對象轉(zhuǎn)換為字符串。 |
toString() | 將 Date 對象轉(zhuǎn)換為字符串盗蟆。 |
toTimeString() | 將 Date 對象的時間部分轉(zhuǎn)換為字符串戈二。 |
toUTCString() | 根據(jù)世界時,將 Date 對象轉(zhuǎn)換為字符串喳资。 |
UTC() | 根據(jù) UTC 時間觉吭,返回自 1970 年 1 月 1 日午夜以來的日期中的毫秒數(shù)。 |
valueOf() | 返回 Date 對象的原始值仆邓。 |