如何获取条带订阅 current_period_end 作为日期

exc*_*Bad 6 node.js stripe-payments

我的最终目标是检查subscription.cancel_at_period_end订阅false结束日期并将其存储为时刻日期对象。

const subscriptionEndDate = moment(subscription.current_period_end);
Run Code Online (Sandbox Code Playgroud)

这是来自测试模式下条带的结果字段。

current_period_end: 1649650039
Run Code Online (Sandbox Code Playgroud)

但即使使用new Date(subscription.current_period_end)也会回来1970-01-20T02:14:10.039Z

这不是应该显示下一个账单日期的字段吗?

有什么想法吗?我缺少什么?

更新:

我只是做了一些测试,结果发现如果我将该值乘以1000,结果就是1649650039000,这等于

2022 年 4 月 11 日星期一 00:07:19

是否有一个原因?这是一种安全的前进方法吗?

更新:

我接受了下面的答案,并提供了直接转换为 unix 时间戳的 momentjs。

const date = moment(new Date()).unix();
Run Code Online (Sandbox Code Playgroud)

Rya*_*anM 12

问题

  • Stripe 将日期字段报告为Unix 时间戳。它们将日期/时间表示为自 1970 年 1 月 1 日以来的秒数(有点……闰秒很奇怪)。
  • Javascript Date 对象尝试转换自 1970 年 1 月 1 日以来的毫秒数,因为这是与前端 Web 编码更相关的时间增量。

解决方案

您已经找到了一个适当的解决方案,即将时间戳乘以 1000,从而将以秒为单位的值转换为以毫秒为单位的值。这似乎是围绕1 , 2 , 3的常见工作