我在http://momentjs.com/docs/#/displaying/format/中看到了#34;本地化格式" L
。
(在浏览器中)我预计这可能会将日期显示从mm/dd/yyyy
更改为dd/mm/yyyy
,具体取决于用户的计算机/浏览器区域设置,但这并不是似乎是这样的。 (我将我的OS X设置更改为测试,并且没有看到任何特定于浏览器的设置。)
目前有没有办法在Moment中实现这一目标?我不希望显示不同的语言/翻译,而只是根据用户的国家/地区设置显示不同的日期格式。
如果没有,这可能/实用吗?我不确定toLocaleDateString
等内容的可靠性/实用性。
答案 0 :(得分:0)
您可以使用片刻localeData
和longDateFormat
来获取特定于语言区域的格式。
这里有一个示例,说明如何获取给定语言环境的格式以及如何相应地显示时刻对象:
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;