99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

淺析Date對象及常用時間格式

2018-06-09 17:57 更新

Date(時間)對象是JavaScript在瀏覽器環(huán)境的一個內(nèi)置對象,用于處理客戶端時間邏輯。本篇文章將會簡單的介紹Date對象,重點是介紹Web開發(fā)中涉及到時間時常用的幾種時間字符串格式。

Date對象

關(guān)于Date對象詳細的文檔說明,請參閱Mozilla開發(fā)者中心

這里稍微提兩點,Data對象中,除了3個比較特殊方法(這里我們可以將其理解成靜態(tài)方法)之外,其他的方法都是實例方法。

  • Date.UTC(),接受一個合法的時間字符串或者多個日期參數(shù),返回此時間距1970-1-1 00:00:00的毫秒數(shù)。
  • Date.now(),返回方法調(diào)用時刻距1970-1-1 00:00:00的毫秒數(shù)。
  • Date.parse(),這個方法比較靈活,可以接受多種參數(shù),返回參數(shù)所代表的時間點距1970-1-1 00:00:00的毫秒數(shù)。

此外,Date對象的構(gòu)造方法接受參數(shù)的形式非常靈活,在實際使用要活學(xué)活用。

好了,其他的內(nèi)容就可以直接參考MDN文檔了。

各種時間格式

上述提到Date對象的構(gòu)造函數(shù)或者部分實例方法可以接受一個合法的時間格式字符串作為參數(shù)。這里我們先來對常見的幾種時間格式做一下科普。

GMT時間

先來段網(wǎng)上的關(guān)于GMT時間的段子,

十七世紀,格林威治皇家天文臺為了海上霸權(quán)的擴張計劃而進行天體觀測。1675年舊皇家觀測所(Old Royal Observatory)正式成立,到了1884年決定以通過格林威治的子午線作為劃分地球東西兩半球的經(jīng)度零度。觀測所門口墻上有一個標志24小時的時鐘,顯示當下的時間,對全球而言,這里所設(shè)定的時間是世界時間參考點,全球都以格林威治的時間作為標準來設(shè)定時間,這就是我們耳熟能詳?shù)摹父窳滞螛藴蕰r間」(Greenwich Mean Time,簡稱G.M.T.)的由來,標示在手表上,則代表此表具有兩地時間功能,也就是同時可以顯示原居地和另一個國度的時間。

再來給出wiki上定義,其實GMT時間是全球24時區(qū)劃分的標準。北京時間就是處于東八區(qū)上,一般的北京時間會被表示成localtimestring + GMT+0800,如下,

Wed Mar 11 2015 18:54:49 GMT+0800 (中國標準時間)

從wiki中,我們可以知道,GMT是根據(jù)地球自轉(zhuǎn)及格林威治子午線來調(diào)時的。但是由于種種原因,這種計時是存在誤差的?,F(xiàn)在的標準時間,是由原子鐘報時的協(xié)調(diào)世界時(UTC)。

UTC時間

首先給出其定義。

UTC時間,又稱為世界標準時間或者世界協(xié)調(diào)時間,簡稱UTC(Coordinated Universal Time),是最主要的世界時間標準,其以原子時秒長為基礎(chǔ),在時刻上盡量接近于格林威治時間(其實UTC時間比GMT時間要精確)。

ISO時間

我們這里說的ISO時間其實指的是國際標準化組織ISO制定的ISO 8601標準,是日期和時間的表示方法,全稱為《數(shù)據(jù)存儲和交換形式·信息交換·日期和時間的表示方法》,目前是第三版ISO8601:2004以替代第一版ISO8601:1988與第二版ISO8601:2000。

關(guān)于ISO 8601更多的內(nèi)容請參見wiki

其他的時間格式

除了上述提到的在web開發(fā)中最常用的三種時間格式之外,還有日常生活中常見的夏時制(DST)、北京時間(CST)、中部標準時間等等。不過因為這些時間格式在web開發(fā)(或者說展現(xiàn))中并不常用,這里我們就一筆帶過,不再多作介紹。

各時間格式之間轉(zhuǎn)化

我們在瀏覽器書寫如下代碼即可得帶一個時間對象,

var d = new Date();
console.log(d);

這里我們沒有給Date的構(gòu)造函數(shù)傳遞任何參數(shù),得到的將是封裝當前時間的一個時間對象。

上述代碼在Chrome Console中執(zhí)行的結(jié)果如下,

Wed Mar 11 2015 19:14:51 GMT+0800 (中國標準時間)

這其實是一種山寨的GMT時間格式字符串,中國標準時間其實就是北京時間。

我們繼續(xù)在console中執(zhí)行下面的代碼,

d.toGMTString();
d.toUTCString();
d.toISOString();

結(jié)果如下,

"Wed, 11 Mar 2015 11:14:51 GMT"
"Wed, 11 Mar 2015 11:14:51 GMT"
"2015-03-11T11:14:51.182Z"

從結(jié)果可以看出toGMTString()toUTCString()得到的結(jié)果是一致。前面我們也說過,UTC時間其實就是更加精確的GMT時間。

至于toISOString()得到的時間字符串是有一般性規(guī)律的,其格式一般如下,

yyyy-mm-ddThh:mm:ss.000Z

使用字母TZ鏈接日期和時間,且Z前面還會有三位數(shù),這三位數(shù)是時間對象對應(yīng)的毫秒數(shù)。

由上面我們可以看出,在進行web開發(fā)時,如果涉及到日期時間的相關(guān)展示時,我們應(yīng)該選擇哪一種時間格式作為數(shù)據(jù)傳輸?shù)母袷侥兀看鸢笩o疑是ISO時間格式,因為它具有一定的規(guī)律,且都是有數(shù)字組成的基本格式。

參考列表


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號