无法使用javascript中的Date()方法获得预期结果

Unable to get expected result with Date() method in javascript

本文关键字:方法 结果 javascript Date 中的      更新时间:2023-09-26

我正在开发一个音乐应用程序。如果添加了音乐文件,那么我应该获得持续时间(以毫秒为单位)并将持续时间转换为分钟。

var d = new Date(ms);
var hms = d.getMinutes().toString() +':'+ d.getSeconds().toString();

如果我提供ms = 331807;

expected answer is = 11:42result is = 41:02
我无法解决这个问题。谁能帮我找到解决办法?

Date对象期望从UTC时间1970年1月1日开始的毫秒数。但是,getMinutesgetSeconds函数将相对于代码运行所在的时区输出。

如果你想使用Date对象,你应该使用getUTCMinutesgetUTCSeconds来代替。

然而,正如其他人指出的,这不是Date对象的最佳用例。您可以通过简单的数学运算将毫秒转换为分钟和秒。

Date构造函数用传递给它的可选参数实例化一个新对象。将一定数量的毫秒值传递给它,将得到一个新的Date对象,这是自epoch以来的日期和时间,相对于传递给它的毫秒数。getMinutes可能会给您42,因为您传递给Date构造函数的时间是所构造日期的第42分钟。

您可以通过简单的乘法将毫秒转换为分钟。

numberOfMilliseconds / (1000*60)