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

时间:2017-06-19 10:30:57

标签: angular momentjs date-formatting

我在http://momentjs.com/docs/#/displaying/format/中看到了#34;本地化格式" L

等选项

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

目前有没有办法在Moment中实现这一目标?我不希望显示不同的语言/翻译,而只是根据用户的国家/地区设置显示不同的日期格式。

如果没有,这可能/实用吗?我不确定toLocaleDateString等内容的可靠性/实用性。

1 个答案:

答案 0 :(得分:0)

您可以使用片刻localeDatalongDateFormat来获取特定于语言区域的格式。

这里有一个示例,说明如何获取给定语言环境的格式以及如何相应地显示时刻对象:



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>
&#13;
&#13;
&#13;