将UNIX转换为HH-MM-SS Javascript

时间:2016-07-25 05:26:53

标签: javascript angularjs node.js unix datetime-conversion

我正在尝试将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();

2 个答案:

答案 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()方法调用,它将打印以下输出:

DEMO

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 

目前尚不清楚你究竟想要什么。你能告诉我们你的预期产量吗?