JavaScript 獲取當(dāng)?shù)貢r(shí)間
JavaScript 作為一門(mén)常用的腳本語(yǔ)言,可以在瀏覽器中獲取用戶(hù)本地的時(shí)間,而無(wú)需引入外部庫(kù)或插件。在開(kāi)發(fā) Web 應(yīng)用程序時(shí),處理時(shí)區(qū)和本地時(shí)間是非常重要的一部分。
在 JavaScript 中通過(guò) Date() 對(duì)象來(lái)獲取本地時(shí)間。使用 new Date() 可以創(chuàng)建一個(gè) Date 對(duì)象,該對(duì)象表示當(dāng)前日期和時(shí)間。
const today = new Date(); const localTime = today.toLocaleTimeString(); console.log(localTime);
上述代碼中,我們通過(guò) new Date() 獲取當(dāng)前日期和時(shí)間,并通過(guò) toLocaleTimeString() 方法來(lái)將日期時(shí)間以本地時(shí)間的格式展示。執(zhí)行該代碼,輸出結(jié)果如下:
10:30:45 AM
上述結(jié)果會(huì)根據(jù)所處的時(shí)區(qū)不同而有所變化,例如,在中國(guó)大陸的輸出結(jié)果為:
下午5:53:24
因此,在獲取本地時(shí)間時(shí),需要考慮時(shí)區(qū)的差異。
在某些情況下,需要將 UTC 時(shí)間轉(zhuǎn)換為本地時(shí)間,例如展示訂閱的 Webinar、發(fā)布文章的時(shí)間等。在知道 UTC 時(shí)間和當(dāng)前時(shí)區(qū)時(shí),可以將 UTC 時(shí)間轉(zhuǎn)換為本地時(shí)間。
const utcDate = "2022-02-15T20:00:00Z"; const localDate = new Date(utcDate).toLocaleString(); console.log(localDate);
上述代碼中,我們將 UTC 時(shí)間轉(zhuǎn)換為本地時(shí)間。執(zhí)行該代碼,并假設(shè)當(dāng)前本地時(shí)間為北京時(shí)間,輸出結(jié)果如下:
2022/2/16 上午4:00:00
上述輸出結(jié)果再次說(shuō)明了時(shí)區(qū)對(duì)本地時(shí)間的影響。
JavaScript 還提供了其他方法來(lái)獲取本地時(shí)間的年、月、日、小時(shí)、分鐘和秒。
const today = new Date(); const year = today.getFullYear(); const month = today.getMonth() + 1; const day = today.getDate(); const hour = today.getHours(); const minute = today.getMinutes(); const second = today.getSeconds(); console.log(year, month, day, hour, minute, second);
上述代碼中,我們通過(guò) Date 對(duì)象提供的方法來(lái)獲取年、月、日、小時(shí)、分鐘和秒,執(zhí)行該代碼,輸出結(jié)果如下:
2022 3 29 10 38 52
上述輸出結(jié)果包含了當(dāng)前時(shí)間的年、月、日、小時(shí)、分鐘和秒,即 2022 年 3 月 29 日 上午 10 點(diǎn) 38 分 52 秒。
綜上所述,在 JavaScript 中獲取本地時(shí)間需要考慮時(shí)區(qū)和差異,可以使用 Date 對(duì)象提供的方法來(lái)獲取本地時(shí)間,以提高開(kāi)發(fā)效率。