国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

javascript引用類(lèi)型之Date

tinna / 3532人閱讀

摘要:實(shí)際上如果我們直接將字符串傳入構(gòu)造函數(shù),后臺(tái)也會(huì)調(diào)用方法。而直接與方法參數(shù)相同的值傳入構(gòu)造函數(shù),獲取的日期對(duì)象都是基于系統(tǒng)設(shè)置的本地時(shí)間創(chuàng)建的。中國(guó)標(biāo)準(zhǔn)時(shí)間中國(guó)標(biāo)準(zhǔn)時(shí)間中國(guó)標(biāo)準(zhǔn)時(shí)間由上面的代碼可以發(fā)現(xiàn),其實(shí)是的引用,發(fā)生變化時(shí),也隨之改變。

最近的項(xiàng)目需要實(shí)現(xiàn)一個(gè)時(shí)間表格的效果,如下圖所示,每次更換第幾周時(shí)也更新對(duì)應(yīng)的日期。使用了Date類(lèi)型,也踩了些坑。故寫(xiě)下此篇筆記。

Date類(lèi)型

ECMAScript中的Date類(lèi)型是在早期Java中的java.util.Date類(lèi)基礎(chǔ)上構(gòu)建的。使用自UTC(1970
年1月1日零時(shí))開(kāi)始經(jīng)過(guò)的毫秒數(shù)來(lái)保存日期

創(chuàng)建對(duì)象

獲取當(dāng)前時(shí)間

var d = new Date();//無(wú)參數(shù)時(shí)自動(dòng)獲得當(dāng)前日期和時(shí)間

獲取特定日期時(shí)間

Date.parse()

  var someday = new Date(Date.parse("Jul 1 2016"));

Date.UTC()

var someday = new Date(Date.UTC(2016,6,1,22,06,15));

具體含義

Date.parse()接受一個(gè)表示日期的字符串參數(shù),若不能表示日期則返回NaN。實(shí)際上如果我們直接將字符串傳入構(gòu)造函數(shù),后臺(tái)也會(huì)調(diào)用Date.parse()方法。可接受的日期格式包括:6/15/2016;July 12,2016;Fri, July 25 2016 00:00:00 GMT-0700(時(shí)區(qū));2016-07-01T00:00:00【最后一種表示反射只有兼容ECMAScript5的支持】

Date.UTC()構(gòu)造的參數(shù)分別是年份、基于0的月份(0-11)、月中的哪天(1-31),小時(shí)(0-23),分鐘、秒、毫秒。其中年和月的參數(shù)是必需的,若沒(méi)有提供后面的參數(shù),則默認(rèn)為第一天,0時(shí)0分0秒。

需要注意的是,不同瀏覽器對(duì)于日期的解釋有所差異。調(diào)用Date.UTC()方法時(shí),直接console.log()出來(lái)的結(jié)果是當(dāng)?shù)貢r(shí)間,而不是GMT時(shí)間。但實(shí)際上UTC返回的是GMT時(shí)間。而直接與UTC方法參數(shù)相同的值傳入Date()構(gòu)造函數(shù),獲取的日期對(duì)象都是基于系統(tǒng)設(shè)置的本地時(shí)間創(chuàng)建的。

調(diào)用方法時(shí)的日期和時(shí)間的毫秒數(shù),時(shí)間戳
//使用Date.now()方法【IE9+,Firefox 3+,Safari 3+,Opera 10.5,Chrome】
var start = Date.now();//開(kāi)始時(shí)間
doSomething();//調(diào)用函數(shù)
var end = Date.now();//停止時(shí)間
var result = end-start;//執(zhí)行時(shí)間

//使用+獲取Date對(duì)象的時(shí)間戳【運(yùn)行有誤?望了解的人能告知】
var start = +new Date();
doSomething();
var end = +new Date();
var result = end - start;

//使用valueOf()獲取時(shí)間戳
var start = (new Date()).valueOf();

//使用parse()獲取時(shí)間戳
var start = Date.parse(new Date());
日期格式化方法

toLocaleString();

//"2016/7/1 下午11:01:45" 

toString()

//"Fri Jul 01 2016 23:01:45 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)"

toDateString()

//"Fri Jul 01 2016"

toTimeString()

//"23:01:45 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)"

toLocaleDateString()

//"2016/7/1"

toLocaleTimeString()

//"下午11:01:45"

toUTCString()

//"Fri, 01 Jul 2016 15:01:45 GMT"

但這些方法中,輸出也是因?yàn)g覽器而異。以上顯示均在Chrome控制臺(tái)輸出。

日期時(shí)間組件方法

這次項(xiàng)目中所用到的方法即是setDate()方法,獲取當(dāng)天時(shí)間后,再利用setDate(today.getDate()+/-n)去獲取日期。setDate()傳入的參數(shù)若超過(guò)了該月中應(yīng)有的天數(shù),則增加月份。setDate()的返回值是時(shí)間戳,不能直接用today.setDate(n).toLocaleDateString(),而是應(yīng)該在setDate(n)后再調(diào)用today.toLocaleDateString();
除此之外,這次還牽扯到對(duì)象引用的問(wèn)題。

var x = new Date();
var y = x;
console.log(x);//Sat Jul 02 2016 00:08:10 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
x.setDate(15);
console.log(x);//Fri Jul 15 2016 00:08:10 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
console.log("y",y);//y Fri Jul 15 2016 00:08:10 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)

由上面的代碼可以發(fā)現(xiàn),y其實(shí)是x的引用,x發(fā)生變化時(shí),y也隨之改變。若想改變這種情況,可使用var y = new Date(x);則y與x則不同。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/79831.html

相關(guān)文章

  • 從[]==![]為true來(lái)剖析JavaScript各種蛋疼的類(lèi)型轉(zhuǎn)換

    摘要:將他們放在堆中是為了不影響棧的效率。所以簡(jiǎn)單數(shù)據(jù)類(lèi)型的值直接存放在棧中。可以對(duì)比上面那張圖默認(rèn)是調(diào)用方法的依,于是等于空字符串。空字符串中國(guó)標(biāo)準(zhǔn)時(shí)間方法返回對(duì)象的原始值,可能是字符串?dāng)?shù)值或值等,看具體的對(duì)象。,需要兩個(gè)操作數(shù)同時(shí)轉(zhuǎn)為。 你是否在面試中遇到過(guò)各種奇葩和比較細(xì)節(jié)的問(wèn)題? []==[] //false []==![] //true {}==!{} //false {}==![...

    Jeff 評(píng)論0 收藏0
  • JavaScript系列--淺析JavaScript解析賦值、淺拷貝和深拷貝的區(qū)別

    摘要:它將返回目標(biāo)對(duì)象。有些文章說(shuō)是深拷貝,其實(shí)這是不正確的。深拷貝相比于淺拷貝速度較慢并且花銷(xiāo)較大。拷貝前后兩個(gè)對(duì)象互不影響。使用深拷貝的場(chǎng)景完全改變變量之后對(duì)沒(méi)有任何影響,這就是深拷貝的魔力。 一、賦值(Copy) 賦值是將某一數(shù)值或?qū)ο筚x給某個(gè)變量的過(guò)程,分為: 1、基本數(shù)據(jù)類(lèi)型:賦值,賦值之后兩個(gè)變量互不影響 2、引用數(shù)據(jù)類(lèi)型:賦址,兩個(gè)變量具有相同的引用,指向同一個(gè)對(duì)象,相互之間有...

    laznrbfe 評(píng)論0 收藏0
  • JavaScript學(xué)習(xí)筆記(一)

    摘要:雖然會(huì)輸出,但是這只是存在的一個(gè)悠久。在的最初版本中使用的是位系統(tǒng),為了性能考慮使用低位存儲(chǔ)變量的類(lèi)型信息,開(kāi)頭代表是對(duì)象,然而表示為全零,所以將它錯(cuò)誤的判斷為。 參考來(lái)源: JavaScript高級(jí)程序設(shè)計(jì):?book.douban.com/subject/105… 千古壹號(hào):?github.com/qianguyihao… 小冊(cè)前端面試之道:?juejin.im/book/5bdc71…...

    pingan8787 評(píng)論0 收藏0
  • JavaScript專(zhuān)題類(lèi)型判斷(上)

    摘要:專(zhuān)題系列第四篇,講解類(lèi)型判斷的各種方法,并且跟著寫(xiě)一個(gè)函數(shù)。返回值為表示操作數(shù)類(lèi)型的一個(gè)字符串。考慮到實(shí)際情況下并不會(huì)檢測(cè)和,所以去掉這兩個(gè)類(lèi)型的檢測(cè)。 JavaScript專(zhuān)題系列第四篇,講解類(lèi)型判斷的各種方法,并且跟著 jQuery 寫(xiě)一個(gè) type 函數(shù)。 前言 類(lèi)型判斷在 web 開(kāi)發(fā)中有非常廣泛的應(yīng)用,簡(jiǎn)單的有判斷數(shù)字還是字符串,進(jìn)階一點(diǎn)的有判斷數(shù)組還是對(duì)象,再進(jìn)階一點(diǎn)的有判...

    lk20150415 評(píng)論0 收藏0
  • 深入理解 Javascript 對(duì)象

    摘要:返回如下仔細(xì)分析下面的圖,將會(huì)加深你的理解和我們有一個(gè)類(lèi)對(duì)象有一個(gè)屬性,其指向構(gòu)造器的原型是一個(gè)類(lèi)構(gòu)造器是之后產(chǎn)生的。 擼js基礎(chǔ)之對(duì)象 圖例 showImg(https://segmentfault.com/img/remote/1460000015949904?w=768&h=448); 先談?wù)?ECMAScript 中的數(shù)據(jù)類(lèi)型 ES6 之前 ECMAScript 中有 5 種...

    neroneroffy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<