成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript引用類型之Date

tinna / 3550人閱讀

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

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

Date類型

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

創(chuàng)建對象

獲取當前時間

var d = new Date();//無參數(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()接受一個表示日期的字符串參數(shù),若不能表示日期則返回NaN。實際上如果我們直接將字符串傳入構(gòu)造函數(shù),后臺也會調(diào)用Date.parse()方法??山邮艿娜掌诟袷桨ǎ?/15/2016;July 12,2016;Fri, July 25 2016 00:00:00 GMT-0700(時區(qū));2016-07-01T00:00:00【最后一種表示反射只有兼容ECMAScript5的支持】

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

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

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

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

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

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

toLocaleString();

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

toString()

//"Fri Jul 01 2016 23:01:45 GMT+0800 (中國標準時間)"

toDateString()

//"Fri Jul 01 2016"

toTimeString()

//"23:01:45 GMT+0800 (中國標準時間)"

toLocaleDateString()

//"2016/7/1"

toLocaleTimeString()

//"下午11:01:45"

toUTCString()

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

但這些方法中,輸出也是因瀏覽器而異。以上顯示均在Chrome控制臺輸出。

日期時間組件方法

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

var x = new Date();
var y = x;
console.log(x);//Sat Jul 02 2016 00:08:10 GMT+0800 (中國標準時間)
x.setDate(15);
console.log(x);//Fri Jul 15 2016 00:08:10 GMT+0800 (中國標準時間)
console.log("y",y);//y Fri Jul 15 2016 00:08:10 GMT+0800 (中國標準時間)

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79831.html

相關(guān)文章

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

    摘要:將他們放在堆中是為了不影響棧的效率。所以簡單數(shù)據(jù)類型的值直接存放在棧中??梢詫Ρ壬厦婺菑垐D默認是調(diào)用方法的依,于是等于空字符串。空字符串中國標準時間方法返回對象的原始值,可能是字符串數(shù)值或值等,看具體的對象。,需要兩個操作數(shù)同時轉(zhuǎn)為。 你是否在面試中遇到過各種奇葩和比較細節(jié)的問題? []==[] //false []==![] //true {}==!{} //false {}==![...

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

    摘要:它將返回目標對象。有些文章說是深拷貝,其實這是不正確的。深拷貝相比于淺拷貝速度較慢并且花銷較大??截惽昂髢蓚€對象互不影響。使用深拷貝的場景完全改變變量之后對沒有任何影響,這就是深拷貝的魔力。 一、賦值(Copy) 賦值是將某一數(shù)值或?qū)ο筚x給某個變量的過程,分為: 1、基本數(shù)據(jù)類型:賦值,賦值之后兩個變量互不影響 2、引用數(shù)據(jù)類型:賦址,兩個變量具有相同的引用,指向同一個對象,相互之間有...

    laznrbfe 評論0 收藏0
  • JavaScript學習筆記(一)

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

    pingan8787 評論0 收藏0
  • JavaScript專題類型判斷(上)

    摘要:專題系列第四篇,講解類型判斷的各種方法,并且跟著寫一個函數(shù)。返回值為表示操作數(shù)類型的一個字符串??紤]到實際情況下并不會檢測和,所以去掉這兩個類型的檢測。 JavaScript專題系列第四篇,講解類型判斷的各種方法,并且跟著 jQuery 寫一個 type 函數(shù)。 前言 類型判斷在 web 開發(fā)中有非常廣泛的應用,簡單的有判斷數(shù)字還是字符串,進階一點的有判斷數(shù)組還是對象,再進階一點的有判...

    lk20150415 評論0 收藏0
  • 深入理解 Javascript 對象

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

    neroneroffy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<