使用Moment.js显示24小时而不是12小时

时间:2017-06-01 13:29:46

标签: javascript momentjs

如何显示24小时而不是12小时。我想利用calendar()函数。

代码:

<p className="item__subtitle">{moment(props.note.updatedAt).locale('en-gb').calendar()}</p>

输出:

Today at 3:17 PM

2 个答案:

答案 0 :(得分:0)

如果您尚未加载区域设置数据,则会看到此行为,因为如果找不到#section { position: relative; height: 70px; z-index: 2; padding-left: 10%; padding-right: 10%; clear: both; max-width: 100%; background-color: black; } #section-1 { position: absolute; text-align: center; width: 50%; height: 50%; background-color: red; opacity: 0.6; },则会回退到<div id="section"> <div id="section-1"></div> </div>(相当于en-gb in力矩)。

使用en文件,或使用en-usmoment-with-locales区域设置文件。

答案 1 :(得分:0)

默认时间格式为LT,因此您需要将其更改为HH:mm。(moment/calendar.js at master · moment/moment

您可以在第二个参数中设置calendar的格式,如下所示。

.calendar(null, {
    lastDay : '[Yesterday at] HH:mm',
    sameDay : '[Today at] HH:mm',
    nextDay : '[Tomorrow at] HH:mm',
    lastWeek : '[last] dddd [at] HH:mm',
    nextWeek : 'dddd [at] HH:mm',
    sameElse : 'L'
})

完整代码:

<p className="item__subtitle">{moment(props.note.updatedAt).locale('en-gb').calendar(null, {
    lastDay : '[Yesterday at] HH:mm',
    sameDay : '[Today at] HH:mm',
    nextDay : '[Tomorrow at] HH:mm',
    lastWeek : '[last] dddd [at] HH:mm',
    nextWeek : 'dddd [at] HH:mm',
    sameElse : 'L'
})}</p>

如果要更改所有calendar的格式,可以将格式设置为locale custom,如下所示。 (来自Customize > Calendar | Moment.js | Docs

// From 2.12.0 onward
moment.updateLocale('en-gb', {
    calendar : {
        lastDay : '[Yesterday at] HH:mm',
        sameDay : '[Today at] HH:mm',
        nextDay : '[Tomorrow at] HH:mm',
        lastWeek : '[last] dddd [at] HH:mm',
        nextWeek : 'dddd [at] HH:mm',
        sameElse : 'L'
    }
});

// From 2.8.1 to 2.11.2 : `moment.locale('en-gb', {calendar : {...  
// Deprecated in 2.8.1 : `moment.lang('en-gb', {calendar : {...