Moment.js: does en locale应该以12小时格式显示时间



我正在使用Moment.js 2.10.3。根据moment-with-locale .js:

var defaultLongDateFormat = {
    LTS  : 'h:mm:ss A',
    LT   : 'h:mm A',
    L    : 'MM/DD/YYYY',
    LL   : 'MMMM D, YYYY',
    LLL  : 'MMMM D, YYYY LT',
    LLLL : 'dddd, MMMM D, YYYY LT'
};

这是否意味着en locale应该用LTS格式显示12小时的时间?

显示问题的jsfield

对不起,我的英语不是很好……

var locale = "en";
var timeOffset = 540;
var currentTimeOffset = moment().utcOffset(timeOffset).locale(locale).format("LTS");
document.getElementById("timeOffset").innerHTML = currentTimeOffset;
var elLocale = moment.utc(currentTimeOffset, "LTS", 'el');
document.getElementById("elLocaleHours").innerHTML = elLocale.hours();
document.getElementById("elLocaleMinutes").innerHTML = elLocale.minutes();
document.getElementById("elLocaleSeconds").innerHTML = elLocale.seconds(); 
var enLocale = moment.utc(currentTimeOffset, "LTS", locale); 
document.getElementById("enLocaleHours").innerHTML = enLocale.hours();
document.getElementById("enLocaleMinutes").innerHTML = enLocale.minutes();
document.getElementById("enLocaleSeconds").innerHTML = enLocale.seconds(); 
var beLocale = moment.utc(currentTimeOffset, "LTS", 'be'); 
document.getElementById("beLocaleHours").innerHTML = beLocale.hours();
document.getElementById("beLocaleMinutes").innerHTML = beLocale.minutes();
document.getElementById("beLocaleSeconds").innerHTML = beLocale.seconds(); 
<script src="http://momentjs.com/downloads/moment-with-locales.min.js"></script>
<div id="timeOffset"></div>
<div id="elLocale"> elLocale (should be 12 h format) :
    <span id="elLocaleHours"></span>&nbsp; : &nbsp;
    <span id="elLocaleMinutes"></span>&nbsp; : &nbsp;
    <span id="elLocaleSeconds"></span>
</div>
<div id="enLocale"> enLocale (should be 12 h format) :
    <span id="enLocaleHours"></span>&nbsp; : &nbsp;
    <span id="enLocaleMinutes"></span>&nbsp; : &nbsp;
    <span id="enLocaleSeconds"></span>
</div>
<div id="beLocale"> beLocale (should be 24 h format) :
    <span id="beLocaleHours"></span>&nbsp; : &nbsp;
    <span id="beLocaleMinutes"></span>&nbsp; : &nbsp;
    <span id="beLocaleSeconds"></span>
</div>

根据文档,我希望enLocale.hours()总是返回0 - 23范围内的小时数:

http://momentjs.com/docs//时间/小时/

与其他持续时间的getter一样,moment.duration().hours()获取小时数(0 - 23)。

http://momentjs.com/docs//设置/小时/

接受0 ~ 23之间的数字。如果超出了这个范围,它就会冒泡Up to the day.

您可能希望使用format()来显示它,这是基于特定的区域设置的:

因为首选格式根据区域设置而不同,所以有一些可用于根据区域设置格式化时刻的令牌。

最新更新