角度日期过滤器不使用条带时间戳

时间:2014-04-10 22:29:05

标签: javascript angularjs timestamp

我有Stripe API提供的时间戳。 1397166153。

然而,当以最简单的形式{{ 1397166153 | date }}使用它时,我得到:1970年1月17日,实际上它应该是2014年4月10日。

有谁知道这里发生了什么?

我真的很感谢你的帮助!

2 个答案:

答案 0 :(得分:6)

我总是通过一个函数运行我的所有时间戳,因为JavaScript纪元是以毫秒为单位,条纹响应时期是以秒为单位。

$scope.timestamp = function(epoch){
    return (epoch * 1000);
};

然后,在您的模板中:

 <p>{{ timestamp(1397166153) | date }}</p>

或者,如果您只需要执行一次,则可以始终以内联方式执行此操作:

 <p>{{ (1397166153 * 1000) | date }}</p>

答案 1 :(得分:2)

似乎时间戳以秒为单位。

var seconds = 1397166153; //your value
var ms = seconds * 1000;

new Date(seconds) // Fri Jan 16 1970 21:06:06 GMT-0700 (Mountain Standard Time)
new Date(ms) // Thu Apr 10 2014 15:42:33 GMT-0600 (Mountain Daylight Time)

我不确定Stripe将其重新发送的格式。但我始终必须转换为Date对象或ms以使用Angular日期过滤器。