深入理解javascript的getTime()方法
1、理解getTime
getTime()
方法返回一個(gè)時(shí)間的格林威治時(shí)間數(shù)值。
可以使用這個(gè)方法把一個(gè)日期時(shí)間賦值給另一個(gè)Date 對(duì)象。
語(yǔ)法:
dateObj.getTime()
參數(shù):
無(wú)。
返回值:
getTime 方法的返回值一個(gè)數(shù)值,表示從1970年1月1日0時(shí)0分0秒(UTC,即協(xié)調(diào)世界時(shí))距離該日期對(duì)象所代表時(shí)間的毫秒數(shù)。
例子:
使用 getTime() 復(fù)制日期對(duì)象
創(chuàng)建一個(gè)擁有相同時(shí)間值的日期對(duì)象。
var birthday = new Date(1994, 12, 10); var copy = new Date(); copy.setTime(birthday.getTime());
測(cè)試結(jié)果如下:
既然表示從1970年1月1日開(kāi)始計(jì)算的毫秒數(shù),如果小于1970年呢,會(huì)是什么情況?(測(cè)試結(jié)果如下,是負(fù)數(shù))
2、應(yīng)用場(chǎng)景
2.1 測(cè)量代碼執(zhí)行時(shí)間
連續(xù)調(diào)用兩個(gè)新生成的日期對(duì)象的 getTime 方法,根據(jù)兩次調(diào)用的返回值求得時(shí)間差。這可以用于計(jì)算某些操作的執(zhí)行時(shí)間。
var end, start, i; start = new Date(); for (i = 0; i < 100000; i++) { Math.sqrt(i); } end = new Date(); console.log("Operation took " + (end.getTime() - start.getTime()) + " msec");
在chrome瀏覽器中進(jìn)行測(cè)試:
2.2 甘特圖時(shí)間表示
最近在調(diào)整teamwork gantt中,發(fā)現(xiàn),是一個(gè)task任務(wù)項(xiàng)的開(kāi)始時(shí)間與結(jié)束時(shí)間,都是用一個(gè)整數(shù)表示,而該數(shù)值就是UTC表示法。格式如下:
{"tasks":[ {"id":-1,"name":"Gantt editor","code":"","level":0,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":21,"end":1399672799999,"startIsMilestone":true,"endIsMilestone":false,"collapsed":false,"assigs":[],"hasChild":true} ,{"id":-2,"name":"coding","code":"","level":1,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":10,"end":1398203999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"description":"","progress":0,"hasChild":true} ,{"id":-3,"name":"gantt part","code":"","level":2,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":2,"end":1397167199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ,{"id":-4,"name":"editor part","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1397167200000,"duration":4,"end":1397685599999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ,{"id":-5,"name":"testing","code":"","level":1,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":6,"end":1399672799999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","description":"","progress":0,"hasChild":true} ,{"id":-6,"name":"test on safari","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":2,"end":1399327199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"8SF:11","hasChild":false} ,{"id":-7,"name":"test on safari","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":2,"end":1399327199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"8SF","hasChild":false} ,{"id":-8,"name":"test on ie","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1400688000000,"duration":3,"end":1400947199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ,{"id":-9,"name":"test on chrome","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1399327200000,"duration":2,"end":1399499999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"links":"","hasChild":false} ,{"id":-10,"name":"Gantt editor","code":"","level":0,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":21,"end":1399672799999,"startIsMilestone":true,"endIsMilestone":false,"collapsed":false,"assigs":[],"hasChild":true} ,{"id":-11,"name":"coding","code":"","level":1,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":10,"end":1398203999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"description":"","progress":0,"hasChild":true} ,{"id":-12,"name":"gantt part","code":"","level":2,"status":"STATUS_ACTIVE","canWrite":true,"start":1396994400000,"duration":2,"end":1397167199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ,{"id":-14,"name":"editor part","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1397167200000,"duration":4,"end":1397685599999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ,{"id":-15,"name":"testing","code":"","level":1,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":6,"end":1399672799999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","description":"","progress":0,"hasChild":true} ,{"id":-16,"name":"test on safari","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1398981600000,"duration":2,"end":1399327199999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ,{"id":-17,"name":"test on ie","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1399327200000,"duration":3,"end":1399586399999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ,{"id":-18,"name":"test on chrome","code":"","level":2,"status":"STATUS_SUSPENDED","canWrite":true,"start":1399327200000,"duration":2,"end":1399499999999,"startIsMilestone":false,"endIsMilestone":false,"collapsed":false,"assigs":[],"depends":"","hasChild":false} ],"selectedRow":0,"canWrite":true,"canWriteOnParent":true}
在甘特圖中,使用getTime表示時(shí)間有以下優(yōu)勢(shì):
計(jì)算兩個(gè)時(shí)間差比較方便
數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)比較簡(jiǎn)單
由于gantt涉及到畫(huà)圖,使用整型數(shù)據(jù)方便處理
3、瀏覽器的兼容性
使用js要收到瀏覽器的限制,不同瀏覽器對(duì)js類(lèi)庫(kù)的支持強(qiáng)弱也不同。而作為標(biāo)準(zhǔn)類(lèi)庫(kù)Date的一個(gè)方法,其適應(yīng)的瀏覽器如下:
4、參考資料
Date.prototype.getTime():https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime
相關(guān)文章
解決Js先觸發(fā)失去焦點(diǎn)事件再執(zhí)行點(diǎn)擊事件的問(wèn)題
今天小編就為大家分享一篇解決Js先觸發(fā)失去焦點(diǎn)事件再執(zhí)行點(diǎn)擊事件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08javascript 獲取網(wǎng)頁(yè)標(biāo)題
js獲取網(wǎng)頁(yè)標(biāo)題2008-04-04JS Jquery 遍歷,篩選頁(yè)面元素 自動(dòng)完成(實(shí)現(xiàn)代碼)
本篇文章是對(duì)JS Jquery 遍歷,篩選頁(yè)面元素 自動(dòng)完成的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07詳解用原生JavaScript實(shí)現(xiàn)jQuery的某些簡(jiǎn)單功能
本篇文章主要對(duì)用原生JavaScript實(shí)現(xiàn)jQuery的某些簡(jiǎn)單功能進(jìn)行詳細(xì)全面的講解,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-122012世界末日倒計(jì)時(shí)代碼 原來(lái)沒(méi)事虛驚一場(chǎng)
這款時(shí)世界末日倒計(jì)時(shí)源代碼,程序上有JS控制器,是用于網(wǎng)頁(yè)中顯示的倒計(jì)時(shí)器,自己可以設(shè)定世界末日的開(kāi)始時(shí)間,網(wǎng)頁(yè)倒計(jì)時(shí)世界末日源代碼直接復(fù)制就可以用2012-12-12JS對(duì)img標(biāo)簽進(jìn)行優(yōu)化使用onerror顯示默認(rèn)圖像
這篇文章主要介紹了JS對(duì)img標(biāo)簽進(jìn)行優(yōu)化使用onerror顯示默認(rèn)圖像,需要的朋友可以參考下2014-04-04