javascript - Videogular - 日期过滤器,格式为 hh :mm:ss format not working

标签 javascript angularjs date datetime videogular

我正在尝试在我的音频播放器应用程序中实现 Videogular。 this page 上示例代码中的设置如下:

      <vg-time-display>{{ currentTime | date:'mm:ss' }}</vg-time-display>
      <vg-scrub-bar>
        <vg-scrub-bar-current-time></vg-scrub-bar-current-time>
      </vg-scrub-bar>
      <vg-time-display>{{ timeLeft | date:'mm:ss' }}</vg-time-display>

但是我尝试加载的音频长度超过一个小时,因此我需要实现“hh:mm:ss”。当我将格式更改为 hh:mm:ss 时,持续时间会增加大约 5:00 小时,并且 00:01:30 显示为 05:01:30

通过一些临时实验,“videogular.js”中的以下更改修复了问题:

this.onUpdateTime = function (event) {
  $scope.API.currentTime = 1000 * event.target.currentTime - (1000 * 60 * 300 * 5 * 5);

  if (event.target.duration != Infinity) {
    $scope.API.totalTime = 1000 * event.target.duration - (1000 * 60 * 300 * 5 * 5);
    $scope.API.timeLeft = 1000 * (event.target.duration - event.target.currentTime) - (1000 * 60 * 300 * 5 * 5);
    $scope.API.isLive = false;
  }
}

但这也会影响我无法修复的以下代码:

  percentTime = 100 * (newCurrentTime / API.totalTime);
  elem.css("width", percentTime + "%");

最佳答案

是的,这看起来更像是 AngularJS 过滤器中缺乏功能,而不是 Videogular 中的问题。我们正在使用 AngularJS 日期过滤器,正如您在 AngularJS 文档中看到的那样,它仅支持浏览器时区或 UTC。

https://docs.angularjs.org/api/ng/filter/date

如果您想显示时间,我建议您创建自己的过滤器来显示时间并使用它而不是日期:'mm:ss'。

因为它看起来像是 Videogular 的一个很好的功能,我将尝试查看 AngularJS 代码并添加完整的时区支持。

关于javascript - Videogular - 日期过滤器,格式为 hh :mm:ss format not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28501672/

相关文章:

javascript - 使用 Socket.IO 获取 404

date_format 中的 MySQL 串联列

javascript - 如何在 moment.js 中正确地将 1 个月添加到当前日期

Javascript按名称从对象获取输入元素

javascript - jQuery .click 问题

javascript - Chrome 非事件选项卡中的通知声音

javascript - AngularJS ng-show 的行为不符合预期

javascript - 当 slider 停止在 angle-rangeslider 中时如何调用函数

angularjs - AngularJS 自定义指令对搜索引擎来说是否类似于 HTML5 语义标签?

Java:日期差异