用extjs或javascript将毫秒转换为时间

Convert milliseconds to time in extjs or javascript

本文关键字:转换 时间 extjs javascript      更新时间:2023-09-26

extjs或javascript中是否有用于将毫秒转换为时间的内置方法?

我找了一个约会用的,但不管用。我总是得到1970年1月1日08:00(太平洋标准时间)。当我尝试test.getHours时,我得到0。我正在尝试打印8:00或08:00

  var getSignOnRecord = 28800000;
  var test = new Date(getSignOnRecord);
  test.getHours() // 0 ???? Should be 8

您可以使用ISOString日期格式长达24小时:

new Date(28800000).toISOString().split("T")[1].split(".")[0]; // == "08:00:00"

您可以很容易地对剩余的文本进行slice()以消除秒数或其他内容。

这是有效的,因为使用"unix"戳会产生GMT偏移,而ISO也会显示GMT,所以通过去掉日期部分,您可以得到高达23h59m59s的可读格式。。。

您正在获取本地化的小时数,但您想要UTC 的小时数

new Date(28800000).getUTCHours() // 8

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours

getHours()方法根据当地时间返回指定日期的小时数。

new Date(value);

value:表示自1970年1月1日00:00:00 UTC 以来的毫秒数的整数值

28800000毫秒确实是1970年1月1日,8小时

当我尝试test.getHours时,我得到0

NB value是UTC,getHours是本地时间

这是一道数学题。据我所知,在原生JavaScript中没有这样的函数,但可以从头开始编码。
function convertToTime(milliseconds) {
    var seconds = Math.floor(milliseconds / 1000) % 60
    var minutes = Math.floor(milliseconds / (1000 * 60)) % 60
    var hours = Math.floor(milliseconds / (1000 * 60 * 60)) % 24
    return (hours < 10 ? "0" + hours : hours) + ":" + 
           (minutes < 10 ? "0" + minutes : minutes) + ":" + 
           (seconds < 10 ? "0" + seconds :seconds);   
}

momentjs中可能也有类似的方法。