鍍金池/ 問答/HTML/ 關(guān)于javascript中UTC時間、GMT時間、當(dāng)?shù)貢r間的困惑

關(guān)于javascript中UTC時間、GMT時間、當(dāng)?shù)貢r間的困惑

1、js中的默認(rèn)哪種標(biāo)準(zhǔn)時間?
據(jù)MDN上定義的Date對象,js的時間是基于1970年1月1日的UTC時間,為什么通過控制臺打印的是GMT時間?
然后有人說:一般認(rèn)為GMT和UTC是基本一樣的,都與英國倫敦的本地時相同,UTC的本質(zhì)強調(diào)的是比GMT更為精確的世界時間標(biāo)準(zhǔn).它其實是個更精確的GMT,既然如此為什么js沒有把new Date() 改成UTC時間呢?而且還有許多內(nèi)置的UTC相關(guān)的轉(zhuǎn)換方法。

2、和本地時間(北京時間CST)的混淆
我們實際生活中用的卻是北京時間即CST時間,它和UTC/GMT相差8個小時,那么通過 new 出來的當(dāng)前時間究竟是什么時間,是否包含8小時的時差?
Mon Sep 10 2018 11:22:55 GMT+0800 (中國標(biāo)準(zhǔn)時間)

回答
編輯回答
詆毀你
輸出的是北京時間 也就是GMT||UTC + 8小時時差

GMT + 0800 表示就是 GTM(格林尼治時間) + 0800(正八時區(qū))

2017年6月5日 15:23
編輯回答
悶油瓶

1.js中的默認(rèn)哪種標(biāo)準(zhǔn)時間? -> 這個要取決于你在哪里看,比如 chrome/IE的控制臺,那就取決于它們怎么實現(xiàn)的,采用的默認(rèn)顯示是哪一個 --所以這個跟引擎有關(guān)

2.以chrome瀏覽器為例:

let d = new Date();
d // Mon Sep 10 2018 13:33:47 GMT+0800 (中國標(biāo)準(zhǔn)時間)    --GMT+0800 這個就是東八區(qū)的意思 ,加了8小時的時差的

可以看到這明顯是一個加了時區(qū)的時間

d.getUTCHours() 
//5

d.getHours()
//13
d.toGMTString()
//"Mon, 10 Sep 2018 05:33:47 GMT"
d.toLocaleString()
//"2018/9/10 下午1:33:47"

至于存在方法的方法名等就不能深究太多了吧,因為代碼都是程序員寫出來的,有可能后面進(jìn)行維護(hù)的

2017年6月11日 21:46
編輯回答
拮據(jù)

時間戳,控制臺打印的是toString執(zhí)行的結(jié)果,根據(jù) ecma 的規(guī)范,執(zhí)行的是 ToDateString 方法,那么這個方法是怎么定義的呢?

The toDateString() method returns the date portion of a Date object in human readable form in American English.

所以其實并不是一個標(biāo)準(zhǔn),比如在firefox就不是GMT時間

2017年7月26日 06:04