我正在尝试将unix时间戳转换为可读时间。我已经尝试了所有可以找到的解决方案,但仍然无法解决。我不想使用任何模块或框架。我很欣赏一些帮助转换。(Angular)请不要链接到其他问题。香港专业教育学院。你知道吗
var unix = Math.round(+new Date()/1000);
console.log(unix) //works
function secondstotime(unix)
{
var t = new Date(1970,0,1);
t.setSeconds(unix);
var s = t.toTimeString().substr(0,8);
if(unix > 86399)
s = Math.floor((t - Date.parse("1/1/70")) / 3600000) + s.substr(2);
console.log(s);
}
secondstotime();
答案 0 :(得分:2)
在angularjs中,您只需使用日期过滤器来转换Unix时间戳(秒)。您只需要将Unix时间戳乘以1000即可使其成为毫秒时间戳。这是代码
<p>{{1469424998 * 1000 | date:'hh:mm:ss'}}</p>
或者您可以使用像mommentjs这样的外部库将Unix时间戳(秒)转换为像这样的日期时间
var day = moment.unix(1469424998);
console.log(day.format("hh:mm:ss"));
我希望它会有所帮助
答案 1 :(得分:1)
你的问题不明确。在您当前的代码中,它打印以下输出:
1469424998
Invalid
它会打印Invalid
,因为您缺少secondstotime()
方法的参数。如果您将paameters添加到secondstotime()
方法调用,它将打印以下输出:
var unix = Math.round(+new Date()/1000);
console.log(unix) //works
function secondstotime(unix)
{
var t = new Date(1970,0,1);
t.setSeconds(unix);
var s = t.toTimeString().substr(0,8);
if(unix > 86399)
s = Math.floor((t - Date.parse("1/1/70")) / 3600000) + s.substr(2);
console.log(s);
}
secondstotime(unix);
输出:
1469424875
56408173:34:35
目前尚不清楚你究竟想要什么。你能告诉我们你的预期产量吗?