我正在使用下面的代码从纪元获取 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
我对此有点迷茫,因为上面代码的转换值对我来说看起来很奇怪。
最佳答案
您的代码有两个问题:
对于您指定的示例值,无需乘以 1000,因为它们已经以毫秒表示。
如果您想不考虑本地时区信息,您必须使用
<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));
关于javascript从纪元值中获取小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53426551/