使用Momentjs将毫秒转换为小时和分钟

use*_*545 27 javascript momentjs

我是Momentjs的新手.我试图用它来将毫秒转换为小时和分钟.下面,x是毫秒

x = 433276000
var y = moment.duration(x, 'milliseconds').asHours;
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

use*_*545 57

我最终这样做了......

var x = 433276000
var tempTime = moment.duration(x);
var y = tempTime.hours() + tempTime.minutes();
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于24小时或更长时间. (7认同)
  • 当我将最后一行更改为`var y = tempTime.hours()+":"+ tempTime.minutes();时,它可以工作 (3认同)
  • 使用 `moment.duration(x).asMinutes()` 这也适用于 24 小时+ (2认同)

clo*_*ure 30

试试这个:

var x = 433276000
var d = moment.duration(x, 'milliseconds');
var hours = Math.floor(d.asHours());
var mins = Math.floor(d.asMinutes()) - hours * 60;
console.log("hours:" + hours + " mins:" + mins);
Run Code Online (Sandbox Code Playgroud)

  • 为什么你需要`var mins = Math.floor(d.asMinutes()) - 小时*60;`如果你可以简单地使用`var mins = d.minutes()`? (5认同)

小智 11

您可以使用moment.utc()从毫秒创建Moment.js日期.

var milliseconds = 1000;
moment.utc(milliseconds).format('HH:mm');
Run Code Online (Sandbox Code Playgroud)

  • 太棒了。如果您想要 > 24 小时,只需添加天数或仅显示小时数。https://codepen.io/h3ll/pen/VQdGMy (3认同)
  • 此功能在超过24小时内无法使用。 (2认同)
  • 这种方式是最好的 (2认同)

dmm*_*mmd 6

有一种更简单的方法来实现你想要的.

这个

moment('2000-01-01 00:00:00').add(moment.duration(1000)).format('HH:mm:ss');
Run Code Online (Sandbox Code Playgroud)

会输出这个

00:00:01
Run Code Online (Sandbox Code Playgroud)

我知道,这不是最高级的,但它是100%纯粹的时刻js.

编辑:不适用于超过24小时的时间段


dje*_*lin 2

这似乎不受此 SO支持。在这个 github 问题之后,您可以使用一个倒计时插件。

但看来您首先可能需要Countdown.js来实现此目的。

countdown(0, 433276000, countdown.HOURS | countdown.MINUTES).toString();
Run Code Online (Sandbox Code Playgroud)

请注意,这没有考虑闰秒,也没有考虑任何闰秒,因为它固定为 Unix 纪元(所以它不是一个纯粹的时间间隔)。