带秒数的 Momentjs 日历

问题描述 投票:0回答:3

我在项目中使用 Moment.js 库进行一些时间操作。

我目前使用

calendar
函数,它返回诸如“今天下午6:28”或“上周日下午6:42”之类的信息。

我现在需要精确到秒的信息,比如“今天下午 6:28:39”或“上周日下午 6:42:55”。 Moment.js 库中是否有任何内置方法可以执行此操作?

javascript time momentjs
3个回答
4
投票

Moment 是高度可定制的。在这种情况下,您想要格式化 LT 条目,因为日历对象使用:

moment. locale('en', {
    calendar : {
        lastDay : '[Yesterday at] LT',
        sameDay : '[Today at] LT',
        nextDay : '[Tomorrow at] LT',
        lastWeek : '[last] dddd [at] LT',
        nextWeek : 'dddd [at] LT',
        sameElse : 'L'
    }
});

修改前:

moment().subtract('days', 2).calendar()
"last Wednesday at 3:44 PM"

所以现在您需要自定义 LT:

moment.locale('en', {
    longDateFormat : {
        LT: "h:mm:ss A", // <----------- add :ss
        L: "MM/DD/YYYY",
        l: "M/D/YYYY",
        LL: "MMMM Do YYYY",
        ll: "MMM D YYYY",
        LLL: "MMMM Do YYYY LT",
        lll: "MMM D YYYY LT",
        LLLL: "dddd, MMMM Do YYYY LT",
        llll: "ddd, MMM D YYYY LT"
    }
});

现在你的时间有几秒钟了:

moment().subtract('days', 2).calendar()
"last Wednesday at 3:41:05 PM"

2
投票

您可以更改 Moment 的长日期格式以包括秒。 默认情况下

calendar
函数使用
LT
格式,初始设置为
"h:mm a"
(时间到分钟加AM/PM)。您可以 alter
LT
格式以包含 seconds (
"h:mm:ss A"
),如下所示:

moment.lang('en', {
    longDateFormat : {
        LT: "h:mm:ss A",
        L: "MM/DD/YYYY",
        l: "M/D/YYYY",
        LL: "MMMM Do YYYY",
        ll: "MMM D YYYY",
        LLL: "MMMM Do YYYY LT",
        lll: "MMM D YYYY LT",
        LLLL: "dddd, MMMM Do YYYY LT",
        llll: "ddd, MMM D YYYY LT"
    }
});

更多细节在这里.


0
投票

您可以组合预定义的格式,例如

format("LL LTS")
© www.soinside.com 2019 - 2024. All rights reserved.