【问题标题】:Moment js getting time ago时刻js得到时间前
【发布时间】:2021-07-22 20:26:23
【问题描述】:

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

【问题讨论】:

  • 请提供一个可重现的例子

标签: momentjs


【解决方案1】:

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

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/

【讨论】:

  • 如何在此之后传递日期,我在执行时遇到错误: ****moment.updateLocale('en', { s : 'A Few Seconds Ago', m: "1 Minute Ago", h: "1 Hour Ago", //这是你需要改变的设置 d: "1 Day Ago", w: "1 Week Ago", M: "1 Month Ago", / /将其更改为 y 月:“1 年前”,})(date).fromNow(false)
  • 我已经编辑了答案并包含了一些示例。
  • 所以我更新了页面加载的时刻,然后我就正常使用了。
猜你喜欢
  • 2015-12-09
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
相关资源
最近更新 更多