代码之家  ›  专栏  ›  技术社区  ›  Aaron

在extjs或javascript中将毫秒转换为时间

  •  1
  • Aaron  · 技术社区  · 10 年前

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

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

      var getSignOnRecord = 28800000;
      var test = new Date(getSignOnRecord);
      test.getHours() // 0 ???? Should be 8
    
    4 回复  |  直到 10 年前
        1
  •  3
  •   dandavis    10 年前

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

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

    您可以轻松地对剩余的文本进行切片(),以消除秒数等。

    这是有效的,因为使用“unix”戳记会导致GMT偏移,而ISO也会显示GMT,所以去掉日期部分,您将得到一个高达23h59m59s的可读格式。。。

        2
  •  3
  •   Ruan Mendes    10 年前

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

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

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

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

        3
  •  1
  •   Ilya    10 年前

    new Date(value);

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

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

    当我尝试测试时。getHours我得到0

    NB公司 价值 是UTC, getHours 是当地时间

        4
  •  0
  •   Richard Hamilton    10 年前

    这是一道数学题。据我所知,在本机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 .