2016-11-24 76 views
0

我想通過查看瀏覽器或時間戳等來根據用戶國家設置moment.locale。 不知道如何實現這一點。Momentjs - 從用戶時間設置區域設置

目前我實現這樣的 -

const userLocale = 'ja'; 
moment.locale(userLocale); 

任何想法真棒人?

+0

您可以找到有關獲取瀏覽器的區域(這裏)的相關信息(http://stackoverflow.com/q/673905/4131048)和[這裏](HTTP://計算器.com/q/1043339/4131048) – VincenzoC

回答

0

你很可能moment-timezone

然而,日期在JavaScript中總是默認爲用戶的本地時區。所以這聽起來像是一個默認解決的問題。例如,通過運行下面的代碼片段,我可以看到當地時間,即GMT-0500。如果你在另一個時區,你應該看到不同的東西。

但是,如果您想通過用戶設置或類似方式將本地時間戳轉換爲特定時區,則moment-timezone是最簡單的方法。

document.getElementById("date").innerHTML = new Date();
<div id="date"></div>

+0

不錯!但有點棘手雖然。我必須映射它並找到正確的區域,可行。 – GeekOnGadgets

+0

@GeekOnGadgets,你可以嘗試'moment.tz.guess();' – hampusohlsson

0

您可以通過

var locale = window.navigator.userLanguage || window.navigator.language; 

獲得瀏覽器的區域,並使用該語言環境來設置片刻的區域

moment.locale(locale); 

如果有在獲得瀏覽器的區域嘗試的一個問題

var locale = navigator.languages && navigator.languages[0] || // Chrome and Firefox 
      navigator.language || // All browsers 
      navigator.userLanguage; // IE <= 10 

希望它能幫助:)