【问题标题】:How to humanize duration in angularjs?如何在angularjs中人性化持续时间?
【发布时间】:2015-11-06 07:18:16
【问题描述】:

我正在使用momentjsmoment-duration-formatY M D HH:mm:ss 格式显示持续时间,具体取决于持续时间(如果它包括年、月、日、小时、分钟和秒),并在此字段上使用 ngTable 排序和过滤器。

代码

  $scope.getTableDataDuration = function(item) {
      if (angular.isDefined(item) && item != null) {
          var tmp = "";
          if (item > 31536000) { //year
              tmp = moment.duration(item, "year").format("Y M D h:mm:s");
              return tmp;
          } else if (item > 2628000) { //month
              tmp = moment.duration(item, "month").format("M D h:mm:s");
              return tmp;
          } else if (item >= 86400) { //day
              tmp = moment.duration(item, "days").format("D h:mm:s");
              return tmp;
          } else if (item < 60) {
              return item;
          } else if (item < 3600) { //minute
              tmp = moment.duration(item, "minutes").format("h:mm:s");
              return tmp;
          }
      }
      return;
  }

Plunker link

更新

例如:

duration in seconds 331 should show 05:51
duration in seconds 7245 should show 02:01:25 
similarly till years

给定一个持续时间,我需要将其人性化,类似于上面的示例

【问题讨论】:

  • 你的问题到底是什么?
  • @DavidVotrubec:需要人性化的持续时间,以秒为单位
  • 好吧,我还是不明白,什么实际上不起作用。如果持续时间小于 60 秒,则它只输出秒数。这不正确吗?
  • @DavidVotrubec:是的,这是正确的,但对于更长的持续时间,它并没有给出正确的人性化价值。在针对 99544 持续时间给出的 plunker 示例中,它转换为 99544 0:00:0 而应该显示 1 15:21:29
  • 我已经发布了答案。我猜您对moment.duration(item, "XXXX") 的所有调用实际上都应该是moment.duration(item, "seconds"),因为提供的值是秒数(而不是年数、天数等​​)。我说的对吗?

标签: javascript jquery angularjs momentjs ngtable


【解决方案1】:

我相信您误解了文档。我个人没有使用moment-duration,但是从GitHub上的文档看来你要使用的是这个

  moment.duration(99544, "seconds").format("D h:mm:s");

它通知 Duration 插件,输入数字以秒为单位,它就是。然后通过提供的格式字符串对其进行格式化。

见这个例子https://github.com/jsmreese/moment-duration-format#weeks

他在这里使用moment.duration(123, "days").format("w W", 2);,基本上说“我有 123 天,我想将其转换为周数”

【讨论】:

    猜你喜欢
    • 2012-07-03
    • 2012-12-18
    • 2021-03-02
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 2023-03-07
    相关资源
    最近更新 更多