【问题标题】:Very custom date format in momentjsmomentjs 中非常自定义的日期格式
【发布时间】:2014-02-25 14:24:12
【问题描述】:

我正在使用 kibana(elasticsearch 仪表板),它允许指定日期模式来解释索引命名模式。

例如,默认模式是:[logstash-]YYYY-MM-DD.HH

我想以小时为单位组织我的索引,比如说以 4 小时为单位。然后将索引命名为logstash-2014-02-25.00logstash-2014-02-25.04logstash-2014-02-25.08、……

有没有办法用 momentjs 获得这种格式?我梦想着[logstash-]YYYY-MM-DD.{HH%4} 但是documentation 没有解释这样的事情(多么奇怪)。

【问题讨论】:

  • 在格式化之前使用 Date API 调整小时。
  • 我必须修改 kibana 源代码才能做到这一点,不是吗?除非必要,否则我想尽可能避免这种情况。
  • 日期首先是如何进入系统的?
  • 是moment(start)给出的值
  • 这似乎不可能,但可能有使用语言自定义的解决方法

标签: javascript elasticsearch momentjs kibana


【解决方案1】:

使用格式化原语似乎不可能做到这一点。

但是,我发现我们可以覆盖一些依赖于语言的格式化程序,例如 meridiem 格式化程序。 一个解决方案是在某处插入(例如在 kibana conf 文件中):

moment.lang('fourHourblocks', {
  meridiem: function(hour, minute, isLowercase) {
    hourBlock = Math.floor(hour / 4).toString();
    if (hourBlock.length < 2) hourBlock = "0" + hourBlock;
    return hourBlock;
  }
}

然后我可以将模式设置为[logstash-]YYYY-MM-DD.A

这有点老套,所以我仍然愿意接受其他解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多