【发布时间】:2014-05-24 21:07:02
【问题描述】:
我有一个由 Stripe 的 API 提供的时间戳。 1397166153.
但是,当以最简单的形式 {{ 1397166153 | date }} 使用它时,我得到:1970 年 1 月 17 日,而实际上应该是 2014 年 4 月 10 日。
有人知道这里发生了什么吗?
非常感谢您的帮助!
【问题讨论】:
标签: javascript angularjs timestamp
我有一个由 Stripe 的 API 提供的时间戳。 1397166153.
但是,当以最简单的形式 {{ 1397166153 | date }} 使用它时,我得到:1970 年 1 月 17 日,而实际上应该是 2014 年 4 月 10 日。
有人知道这里发生了什么吗?
非常感谢您的帮助!
【问题讨论】:
标签: javascript angularjs timestamp
我总是通过一个函数运行我所有的时间戳,因为 JavaScript 纪元以毫秒为单位,而 Stripe 响应纪元以秒为单位。
$scope.timestamp = function(epoch){
return (epoch * 1000);
};
然后,在您的模板中:
<p>{{ timestamp(1397166153) | date }}</p>
或者,如果您只需要执行一次,您可以随时内联执行:
<p>{{ (1397166153 * 1000) | date }}</p>
【讨论】:
时间戳似乎以秒为单位。
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 日期过滤器。
【讨论】: