1

解决了我自己的问题。我想使用 moment.js 将秒转换为 HH:mm:ss。我使用了以下代码,它有效,但我不知道为什么 moment(0) 将时间设置为 19 00

var yearZero = moment(0).subtract('hours',19); //beginning of time
var sTimecode = yearZero.add('seconds', secondsUntilEvent).format("HH:mm:ss");

来自http://momentjs.com/docs/#/parsing/unix-offset/

moment(Number);
Similar to new Date(Number), you can create a moment by passing an integer value representing the number of milliseconds since the Unix Epoch (Jan 1 1970 12AM UTC).

没有看到关于从 7PM / 19 00 开始的任何信息

问题是我在没有声明 UTC 的情况下输出它。以下更改起到了作用:

var sTimecode = moment(0).add('seconds', secondsUntilEvent).utc().format("HH:mm:ss");

也许其他人遇到了同样的问题(或没有)。再会!

4

1 回答 1

0

无需执行如此复杂的解决方法,您始终可以使用 moment 构造函数来读取一个整数,该整数被解释为 unix 纪元的毫秒数。这对我来说很好:

var value = moment(18000 * 1000).format('HH:mm:ss'); // 5 Hours

document.getElementById('date').innerHTML = value;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
<pre id="date"></pre>

显然,时间会根据浏览器的时区显示

于 2015-08-25T18:53:27.523 回答