摘要:實(shí)際上,如果直接將表示日期的字符串傳遞給構(gòu)造函數(shù),也會(huì)在后臺(tái)調(diào)用方法,例如下面的代碼跟前面的是等價(jià)的。構(gòu)造函數(shù)構(gòu)造函數(shù)會(huì)模仿但有一點(diǎn)不同的是,日期和時(shí)間都是基于本地時(shí)區(qū)而非來(lái)創(chuàng)建。兼容性問(wèn)題啊其原因就是非標(biāo)準(zhǔn)日期格式。
一:Date類(lèi)型介紹
要?jiǎng)?chuàng)建一個(gè)日期對(duì)象,使用new操作符和Date構(gòu)造函數(shù)即可:
var now = new Date();
Date.parse()方法
其中Date.parse()方法接收一個(gè)表示日期的字符串參數(shù),然后嘗試根據(jù)這個(gè)字符串返回相應(yīng)日期的毫秒數(shù)。ECMA-262沒(méi)有定義Date.parse()應(yīng)該支持哪種日期格式,因此這個(gè)方法的行為因?qū)崿F(xiàn)而異,而且通常是因地區(qū)而異。將地區(qū)設(shè)置為美國(guó)的瀏覽器通常都接受下列日期格式:
"月/日/年",如6/13/2004;
"英文月名 日,年",如May 12,2004;
"英文星期幾 英文月名 日 年 時(shí):分:秒 時(shí)區(qū)",如Tue May 25 2004 00:00:00 GMT+0800。
ISO 8601擴(kuò)展格式Y(jié)YYY-MM-DDTHH:mm:ss:sssZ(例如
2004-05-25T00::00:00)。只有兼容ECMAScript5的實(shí)現(xiàn)支持這種格式。
例如,要為2004年5月25日創(chuàng)建一個(gè)日期對(duì)象,可以使用下面的代碼:
//Tue May 25 2004 00:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) var someDate = new Date(Date.parse("May 25,2004"));
如果傳入Data.parse()的方法的字符串不能表示日期格式,會(huì)返回NAN。實(shí)際上,如果直接將表示日期的字符串傳遞給Date構(gòu)造函數(shù),也會(huì)在后臺(tái)調(diào)用Date.parse()方法,例如下面的代碼跟前面的是等價(jià)的。
//Tue May 25 2004 00:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) var someDate = new Date("May 25,2004");
這行代碼將會(huì)得到與前面一行相同的日期對(duì)象。
Date.UTC()方法
Date.UTC()同樣返回日期的毫秒數(shù)。但它與Date.parse()在構(gòu)建值時(shí)使用的是不同的信息。Date.UTC()的參數(shù)分別表示年份、基于0的月數(shù)(一月是0,二月是1,依次類(lèi)推)、月中的哪一天(1到31)、小時(shí)數(shù)(0到23)、分鐘、秒、毫秒數(shù)。在這些參數(shù)中只有前兩個(gè)參數(shù)是必須的(年和月)。如果沒(méi)有提供月中的天數(shù),則假設(shè)天數(shù)為1;如果省略其它參數(shù),則統(tǒng)統(tǒng)假設(shè)為0,如下例子:
//GMT時(shí)間2000年1月1日午夜零時(shí) var y2k = new Date(Date.UTC(2000,0)); console.log(y2k); //Sat Jan 01 2000 08:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) //GMT時(shí)間2005年5月5日下午5:55:55 var allFives = new Date(Date.UTC(2005,4,5,17,55,55)); console.log(allFives);//Fri May 06 2005 01:55:55 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
說(shuō)明下:Greenwich Mean Time (GMT)格林尼治標(biāo)準(zhǔn)時(shí)間英國(guó)、愛(ài)爾蘭、冰島和葡萄牙屬于該時(shí)區(qū)。這個(gè)時(shí)區(qū)與中國(guó)北京時(shí)間的時(shí)差是8個(gè)小時(shí),也就是說(shuō)比北京時(shí)間晚8個(gè)小時(shí)。
Date構(gòu)造函數(shù)
Date構(gòu)造函數(shù)會(huì)模仿Date.UTC(),但有一點(diǎn)不同的是,日期和時(shí)間都是基于本地時(shí)區(qū)而非GMT來(lái)創(chuàng)建。不過(guò)他們的參數(shù)跟Date.UTC()的參數(shù)一樣。
例如:
//本地時(shí)間2000年1月1日午夜零時(shí) var y2k = new Date(2000,0); console.log(y2k); //Sat Jan 01 2000 00:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) //本地時(shí)間2005年5月5日下午5:55:55 var allFives = new Date(2005,4,5,17,55,55); console.log(allFives);//Thu May 05 2005 17:55:55 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
給Date構(gòu)造函數(shù)傳遞參數(shù)常使用如下幾種方式:(注:參數(shù)可以為整數(shù); 也可以為字符串; 但格式必須正確)
new Date(2009,1,1); //正確
new Date("2009/1/1"); //正確
new Date("2009-1-1"); //不兼容,在谷歌下能解析,在IE瀏覽器9及以上結(jié)果為[date] Invalid
Date,IE8及以下結(jié)果為NAN。
說(shuō)明:日期對(duì)象new Date()的參數(shù)形式如下:
1)new Date("month dd,yyyy hh:mm:ss");
2)new Date("month dd,yyyy");
3)new Date(yyyy,mth,dd,hh,mm,ss);
4)new Date(yyyy,mth,dd);
5)new Date(ms);
需要注意最后一種形式,參數(shù)表示的是需要?jiǎng)?chuàng)建的時(shí)間和 GMT時(shí)間1970年1月1日之間相差的毫秒數(shù)。各種函數(shù)的含義如下:
month:用英文 表示月份名稱(chēng),從January到December
mth:用整數(shù)表示月份,從0(1月)到11(12月)
dd:表示一個(gè) 月中的第幾天,從1到31
yyyy:四位數(shù)表示的年份
hh:小時(shí)數(shù),從0(午夜)到23(晚11點(diǎn))
mm: 分鐘數(shù),從0到59的整數(shù)
ss:秒數(shù),從0到59的整數(shù)
ms:毫秒數(shù),為大于等于0的整數(shù)
例如:
new Date("January 12,2006 22:19:35"); new Date("January 12,2006"); new Date(2006,0,12,22,19,35); new Date(2006,0,12); new Date(1137075575000);
上面的各種創(chuàng)建形式都表示2006年1月12日這一天。
Date.now()方法
ES5添加了Date.now()方法,返回表示這個(gè)方法時(shí)的日期和時(shí)間的毫秒數(shù)。這個(gè)方法簡(jiǎn)化了使用Date對(duì)象分析代碼的工作,例如:
//取得開(kāi)始時(shí)間 var start = Date.now(); //調(diào)用函數(shù) dosomething(); //取得結(jié)束時(shí)間 var stop = Date.now(), result = stop - start; console.log(start,stop,result); //1494292306763 1494292306768 5 function dosomething(){ console.log("打印結(jié)果"); }
支持Date.now()方法的瀏覽器包括IE9+,F(xiàn)ireFox3+,Safari3+,Opera10.5+和Chrome。在不支持的其它瀏覽器,使用+操作符把Date對(duì)象轉(zhuǎn)成字符串,也可以達(dá)到相同的目的。
//取得開(kāi)始時(shí)間 var start = +new Date(); //調(diào)用函數(shù) dosomething(); //取得結(jié)束時(shí)間 var stop = +new Date(), result = stop - start; console.log(start,stop,result); //1494292306763 1494292306768 5 function dosomething(){ console.log("打印結(jié)果"); }
那么就出來(lái)這么一個(gè)例子,JavaScript 獲取當(dāng)前毫秒時(shí)間戳有以下幾種方法:
console.log(Date.parse(new Date())); //結(jié)果:1494301186000//不推薦; 毫秒改成了000顯示 console.log((new Date()).valueOf()); //結(jié)果:1494301186175 console.log(new Date().getTime()); //結(jié)果:1494301186175 console.log(Date.now()); //結(jié)果:1494301186175 console.log(+new Date()); //結(jié)果:1494301186175繼承的方法
與其它引用類(lèi)型一樣,Date類(lèi)型也重寫(xiě)了toLocaleString()、toString()和valueOf()方法。
其中toLocaleString()、toString()在顯示日期和時(shí)間沒(méi)有什么價(jià)值;而valueOf()方法不是返回的字符串,而是返回日期的毫秒表示。因此可以方便使用比較操作符(大于或小于)來(lái)比較日期值。如下面的例子:
var date1 = new Date(2007,0,1); var date2 = new Date(2007,1,1); console.log(date1 < date2); //true console.log(date1 > date2); //false日期格式化方法
Date類(lèi)型還有一些專(zhuān)門(mén)用于將日期格式化為字符串的方法,如下:
toDateString()——以特定于實(shí)現(xiàn)的格式顯示星期幾、月、日和年;
toTimeString()——以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒和時(shí)區(qū);
toLocaleDateString()——以特定與地區(qū)的格式顯示星期幾、月、日和年;
toLocaleTimeString()——以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒;
toUTCString()——以特定于實(shí)現(xiàn)的格式完整的UTC日期。
與toLocaleString()和toString()方法一樣,以上這些字符串格式的方法輸出也是因?yàn)g覽器而異的。因此沒(méi)有哪一個(gè)方法能夠用來(lái)在用戶界面上顯示一致的日期信息。
日期/時(shí)間組件方法以下紅色標(biāo)記為常用:
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)。
getMilliseconds() 返回 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)。
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)。
調(diào)用方式:
var myDate = new Date(); myDate.getYear(); //獲取當(dāng)前年份(2位) myDate.getFullYear(); //獲取完整的年份(4位,1970-????) myDate.getMonth(); //獲取當(dāng)前月份(0-11,0代表1月) // 所以獲取當(dāng)前月份是myDate.getMonth()+1; myDate.getDate(); //獲取當(dāng)前日(1-31) myDate.getDay(); //獲取當(dāng)前星期X(0-6,0代表星期天) myDate.getTime(); //獲取當(dāng)前時(shí)間(從1970.1.1開(kāi)始的毫秒數(shù)) myDate.getHours(); //獲取當(dāng)前小時(shí)數(shù)(0-23) myDate.getMinutes(); //獲取當(dāng)前分鐘數(shù)(0-59) myDate.getSeconds(); //獲取當(dāng)前秒數(shù)(0-59) myDate.getMilliseconds(); //獲取當(dāng)前毫秒數(shù)(0-999)簡(jiǎn)單常用示例 1.獲取當(dāng)前時(shí)間
function getNowTime() { return new Date(); }2.時(shí)間與天數(shù)相加
function getTimeAddDays(time, days) { return new Date(time.getTime() + days * 24 * 60 * 60 * 1000); }3.獲取并格式化日期:年-月-日
function getFormatDate(time) { return time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate(); }4.字符串轉(zhuǎn)換為日期,字符串格式:2011-11-20
function convertToDate(strings) { return new Date(Date.parse(strings.replace(/-/g, "/"))); }
或者:
function convertToDate(strings) { return new Date(strings.replace(/-/g, "/")); }5.獲取并格式化星期
// 計(jì)算系統(tǒng)當(dāng)前是星期幾 var str = "今天是星期" + "日一二三四五六".charat(new Date().getDay());
可查看《JS進(jìn)階篇--JS計(jì)算系統(tǒng)當(dāng)前日期是星期幾的幾種方法》
6.時(shí)間比較function compareTime(time1, time2) { return time1.getTime() - time2.getTime(); }7.計(jì)算兩個(gè)日期之間相隔的天數(shù)
function getDays(time1, tiem2){ var day = 24*60*60*1000; return (time1.getTime() - time2.getTime())/day; }擴(kuò)展示例 1.JS判斷某年某月有多少天
JavaScript里面的new Date("xxxx/xx/xx")這個(gè)日期的構(gòu)造方法有一個(gè)妙處,當(dāng)你傳入的是"xxxx/xx/0"(0號(hào))的話,得到的日期是"xx"月的前一個(gè)月的最后一天("xx"月的最大取值是69,題外話),如果傳入"1999/13/0",會(huì)得到"1998/12/31"。而且最大的好處是當(dāng)你傳 入"xxxx/3/0",會(huì)得到xxxx年2月的最后一天,它會(huì)自動(dòng)判斷當(dāng)年是否是閏年來(lái)返回28或29,不用自己判斷,太方便了?。∷?,我們想得到選 擇年選擇月有多少天的話,只需要
var d=new Date("選擇年/選擇月+1/0");
alert(d.getDate());
下面是使用Javascript編寫(xiě)的獲取某年某月有多少天的getDaysInOneMonth(year, month)方法:
function getDaysInOneMonth(year, month){ month = parseInt(month,10)+1; var d= new Date(year+"/"+month+"/0"); return d.getDate(); }
Chrome瀏覽器(谷歌瀏覽器)對(duì)這個(gè)特性不支持,得到的結(jié)果是NAN。兼容性問(wèn)題??!其原因就是非標(biāo)準(zhǔn)日期格式。
改成如下的格式就OK:
function getDaysInMonth(year,month){ var month = parseInt(month,10); var temp = new Date(year,month,0); return temp.getDate(); } console.log(getDaysInMonth(2017,2)); //282.js獲取某年某月的哪些天是周六和周日
3.使用JavaScript生成一個(gè)倒數(shù)7天的數(shù)組
描述:
比如今天是10月1號(hào),生成的數(shù)組是["9月25號(hào)","9月26號(hào)","9月27號(hào)","9月28號(hào)","9月29號(hào)","9月30號(hào)","10月1號(hào)"]。
這個(gè)難點(diǎn)就是需要判斷這個(gè)月份(可能還需要上一個(gè)月份)是30天還是31天,而且還有瑞年的2月28天或者29天。
方法一:
不需要那么復(fù)雜,在js中非常簡(jiǎn)單,因?yàn)閖s的date對(duì)象是可以參與數(shù)學(xué)運(yùn)算的!?。】聪旅娴拇a:
var now = new Date("2012/3/2 12:00:00"); var s = ""; var i = 0; while (i < 7) { s += now.getFullYear() + "/" + (now.getMonth() + 1) + "/" + now.getDate() + " "; // 這個(gè)是關(guān)鍵?。?!減去一天的毫秒數(shù)效果就是把日期往前推一天 now = new Date(now - 24 * 60 * 60 * 1000); i++; } console.log(s);
結(jié)果:
2017/6/2 2017/6/1 2017/5/31 2017/5/30 2017/5/29 2017/5/28 2017/5/27
方法二:
根據(jù)當(dāng)前系統(tǒng)時(shí)間,來(lái)計(jì)算這個(gè)倒數(shù)7天的數(shù)組:
var now = new Date(); var s = ""; var i = 0; while (i < 7) { s += now.getFullYear() + "/" + (now.getMonth() + 1) + "/" + now.getDate() + " "; // 這個(gè)是關(guān)鍵?。?!減去一天的毫秒數(shù)效果就是把日期往前推一天 now = new Date(now - 24 * 60 * 60 * 1000); i++; } console.log(s);
結(jié)果:
2017/6/2 2017/6/1 2017/5/31 2017/5/30 2017/5/29 2017/5/28 2017/5/27
方法三:
用Date 的 setDate()方法
var today = new Date(); var curday = today.getFullYear() +"/" + Number(today.getMonth() + 1) +"/"+ today.getDate(); //2017/11/9 var dates = [curday]; for (var i = 1; i < 7; i++) { var d = new Date(today); d.setDate(d.getDate() - i); var ss = d.getFullYear() +"/" + Number(d.getMonth() + 1) +"/"+ d.getDate(); dates.unshift(ss); } console.log(dates);
結(jié)果:
["2017/11/3", "2017/11/4", "2017/11/5", "2017/11/6", "2017/11/7", "2017/11/8", "2017/11/9"]
4.js獲取上一個(gè)月、下一個(gè)月格式為yyyy-mm-dd的日期注:setDate() 方法用于設(shè)置一個(gè)月的某一天。
getDate() 方法可返回月份的某一天。
unshift() 方法可向數(shù)組的開(kāi)頭添加一個(gè)或更多元素,并返回新的長(zhǎng)度。
function GetMonthFun(){} //date的日期格式為 yyyyy-mm-dd GetMonthFun.prototype.getPrevMonth = function(date){ var arr = date.split("-"); var year = arr[0]; //獲取當(dāng)前日期的年份 var month = arr[1]; //獲取當(dāng)前日期的月份 var day = arr[2]; //獲取當(dāng)前日期的日 var days = new Date(year, month, 0); days = days.getDate(); //獲取當(dāng)前日期中月的天數(shù) var year2 = year; var month2 = parseInt(month) - 1; if (month2 == 0) { year2 = parseInt(year2) - 1; month2 = 12; } var day2 = day; var days2 = new Date(year2, month2, 0); days2 = days2.getDate(); if (day2 > days2) { day2 = days2; } if (month2 < 10) { month2 = "0" + month2; } var t2 = year2 + "-" + month2 + "-" + day2; return t2; } //date的日期格式為 yyyyy-mm-dd GetMonthFun.prototype.getNextMonth = function(date){ var arr = date.split("-"); var year = arr[0]; //獲取當(dāng)前日期的年份 var month = arr[1]; //獲取當(dāng)前日期的月份 var day = arr[2]; //獲取當(dāng)前日期的日 var days = new Date(year, month, 0); days = days.getDate(); //獲取當(dāng)前日期中的月的天數(shù) var year2 = year; var month2 = parseInt(month) + 1; if (month2 == 13) { year2 = parseInt(year2) + 1; month2 = 1; } var day2 = day; var days2 = new Date(year2, month2, 0); days2 = days2.getDate(); if (day2 > days2) { day2 = days2; } if (month2 < 10) { month2 = "0" + month2; } var t2 = year2 + "-" + month2 + "-" + day2; return t2; } var dateObj = new GetMonthFun(); console.log(dateObj.getPrevMonth("2014-01-25")); //2013-12-25 console.log(dateObj.getNextMonth("2014-10-31")); //2014-11-30
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/78021.html
摘要:本文是重溫基礎(chǔ)系列文章的第七篇。系列目錄復(fù)習(xí)資料資料整理個(gè)人整理重溫基礎(chǔ)語(yǔ)法和數(shù)據(jù)類(lèi)型重溫基礎(chǔ)流程控制和錯(cuò)誤處理重溫基礎(chǔ)循環(huán)和迭代重溫基礎(chǔ)函數(shù)重溫基礎(chǔ)表達(dá)式和運(yùn)算符重溫基礎(chǔ)數(shù)字本章節(jié)復(fù)習(xí)的是中的時(shí)間對(duì)象,一些處理的方法。 本文是 重溫基礎(chǔ) 系列文章的第七篇。今日感受:做好自律。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1.語(yǔ)法和數(shù)據(jù)類(lèi)型...
摘要:個(gè)人前端文章整理從最開(kāi)始萌生寫(xiě)文章的想法,到著手開(kāi)始寫(xiě),再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫(xiě)好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開(kāi)始萌生寫(xiě)文章的想法,到著手...
摘要:歡迎訪問(wèn)我的個(gè)人博客前言這兩個(gè)方法的返回值都是午夜距離該日期時(shí)間的毫秒數(shù)如何使用下面的例子中,我們將取得從到的毫秒數(shù)的使用返回自定義時(shí)間戳返回當(dāng)前時(shí)間的事件戳結(jié)果為的使用打印出來(lái)的是巧妙寫(xiě)法返回值為返回值為返回值為以上這些方式都可以返回時(shí)間 歡迎訪問(wèn)我的個(gè)人博客:http://www.xiaolongwu.cn 前言 這兩個(gè)方法的返回值都是 1970/1/1 午夜距離該日期時(shí)間的毫秒數(shù)...
摘要:下面,我將自己閱讀的源碼的過(guò)程記錄下來(lái)。閱讀庫(kù)的代碼,首先先要知道這個(gè)庫(kù)的作用是一個(gè)輕量的時(shí)間日期處理庫(kù),其用法和完全一樣。介紹首先,閱讀的源碼,我們應(yīng)該從的入手。對(duì)象是不可變的,即所有改變的操作都會(huì)返回一個(gè)新的實(shí)例。 前言 作為一個(gè)程序員,閱讀別人優(yōu)秀代碼是提升自己技術(shù)能力的一個(gè)很好的方法。下面,我將自己閱讀 dayjs(v1.6.10)的源碼的過(guò)程記錄下來(lái)。 閱讀庫(kù)的代碼,首先先要...
閱讀 867·2021-10-09 09:58
閱讀 711·2021-08-27 16:24
閱讀 1791·2019-08-30 14:15
閱讀 2438·2019-08-30 11:04
閱讀 2166·2019-08-29 18:43
閱讀 2231·2019-08-29 15:20
閱讀 2783·2019-08-26 12:20
閱讀 1701·2019-08-26 11:44