javascript从纪元值获取小时和分钟

Vik*_*Vik 3 javascript datetime

我使用下面的代码从纪元获取 hh:mm

 var dt = new Date(t*1000);  
    var hr = dt.getHours();
    var m = "0" + dt.getMinutes();
    return hr+ ':' + m.substr(-2)
Run Code Online (Sandbox Code Playgroud)

对于以下值:

1542895249079  prints: 19:37  Expected: 2:00 PM
1542897015049  prints: 6:10  Expected: 2:30 PM
1542902445344  prints: 2:35  Expected: 4:00 PM
Run Code Online (Sandbox Code Playgroud)

我对此有点迷失,因为上面代码的转换值对我来说看起来完全奇怪。

Rob*_*sen 5

您的代码有两个问题:

  1. 对于您指定的示例值,无需乘以 1000,因为它们已经以毫秒为单位表示。

  2. 如果您想将本地时区信息保留在帐户之外,则必须使用getUTCHours()getUTCMinutes()

function convert(t) {
  const dt = new Date(t);
  const hr = dt.getUTCHours();
  const m = "0" + dt.getUTCMinutes();
  
  return hr + ':' + m.substr(-2)
}

console.log(convert(1542895249079));
console.log(convert(1542897015049));
console.log(convert(1542902445344));
Run Code Online (Sandbox Code Playgroud)