首页 > 解决方案 > javascript从纪元值获取小时和分钟

问题描述

我正在使用以下代码从 epoch 获取 hh:mm

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

对于以下值:

1542895249079  prints: 19:37  Expected: 2:00 PM
1542897015049  prints: 6:10  Expected: 2:30 PM
1542902445344  prints: 2:35  Expected: 4:00 PM

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

标签: javascriptdatetime

解决方案


您的代码有两个问题:

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

  2. 如果您想将本地时区信息排除在帐户之外,则必须使用getUTCHours()and 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));


推荐阅读