在momentjs中非常自定义日期格式

时间:2014-02-25 14:24:13

标签: javascript elasticsearch momentjs kibana

我正在使用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没有解释这样的事情(多么奇怪)。

1 个答案:

答案 0 :(得分:0)

使用格式化原语似乎无法做到这一点。

但是,我发现我们可以覆盖一些与语言相关的格式化程序,例如meridiem formatter。 然后解决方案是在某处插入(例如在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

这是一种hacky,所以我仍然对其他解决方案开放