首页 > 解决方案 > 时刻js得到时间前

问题描述

我正在使用时刻来获取时间,但是对于 1 小时前发生的事情,它是这样的:'am 小时前',是否有可能得到 '1 小时前'?几个月都一样,“一个月前”=>“1个月前”

标签: momentjs

解决方案


您可以配置时刻以您想要的任何格式显示相对时间。例如:

moment.updateLocale('en', {
    relativeTime : {
        future: "in %s",
        past:   "%s ago",
        s  : 'a few seconds',
        ss : '%d seconds',
        m:  "a minute",
        mm: "%d minutes",
        h:  "1 hour ago", //this is the setting that you need to change
        hh: "%d hours",
        d:  "a day",
        dd: "%d days",
        w:  "a week",
        ww: "%d weeks",
        M:  "1 month ago", //change this for month
        MM: "%d months",
        y:  "a year",
        yy: "%d years"
    }
});

进行此更改后,可以照常使用矩库。

以下是一些示例:

moment('2021-07-23 14:00:00').fromNow();

如果您的日期格式与预期不同,那么您还需要提供获取它的格式。不这样做将返回“无效日期”。

moment('21/07/2021',"DD/MM/YYYY").fromNow();

您还可以指定多种格式:

moment('21-07-2021', ['DD/MM/YYYY', 'YYYY/MM/DD']).fromNow();

您可以随时检查您是否获得了有效日期。这有助于进行一些检查,或者在调试代码时会有所帮助:

moment('abc', ['MM/DD/YYYY', 'YYYY/MM/DD']).isValid() //false

有关更多信息,请参阅此处的文档:https ://momentjs.com/docs/#/customization/relative-time/


推荐阅读