根据 angular 中的计算机设置显示本地化日期格式 2

Show localized date format based on computer settings in angular 2

我在 http://momentjs.com/docs/#/displaying/format/ 中看到 "Localized formats" 选项,例如 L

(在浏览器中)我预计这可能会将日期的显示从 mm/dd/yyyy 更改为 dd/mm/yyyy,具体取决于用户的 computer/browser 区域设置,但这似乎没有是这样的。 (我更改了 OS X 设置进行测试,但没有看到任何特定于浏览器的设置)。

目前朋友圈有没有办法做到这一点?我不想显示不同的 languages/translations,而只是根据用户的 country/locale 设置显示不同的日期格式。

如果不是,这就是 possible/practical 吗?我不确定 reliability/usefulness 之类的 toLocaleDateString.

您可以使用 moment localeDatalongDateFormat 来获取特定于语言环境的格式。

这里的示例显示了如何获取给定语言环境的格式以及如何相应地显示 moment 对象:

function changeLang(value){  
  // Get locale data
  var localeData = moment.localeData(value);
  var format = localeData.longDateFormat('L');
  var res = moment().format(format);
  
  $("#format").html(format);
  $("#result").html(res);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-with-locales.min.js"></script>

<select onchange="changeLang(value)">
  <option value="en">EN</option>
  <option value="en-CA">en-CA (Canada)</option>
  <option value="eo">eo (Esperanto)</option>
  <option value="de">DE</option>
  <option value="it">IT</option>
  <option value="hu">hu (Hungarian)</option>
  <option value="ja">ja (Japanese)</option>
  <option value="lv">lv (Latvian)</option>
  <option value="fr">FR</option>
  <option value="zh-hk">zh-hk - Chinese (Hong Kong)</option>
  <option value="ar-ly">ar-ly - Arabic (Lybia)</option>
</select>

<div id="format"></div>
<div id="result"></div>