如何获得条纹订阅 current_period_end 作为日期
How to get stripe subscription current_period_end as date
我的最终目标是检查 subscription.cancel_at_period_end
是否有 false
并将订阅结束日期存储为时刻日期对象。
const subscriptionEndDate = moment(subscription.current_period_end);
这是测试模式下来自条带的结果字段。
current_period_end: 1649650039
但即使使用 new Date(subscription.current_period_end)
也会返回 1970-01-20T02:14:10.039Z
这不是应该在下一个账单日期显示的字段吗?
有什么想法吗?我错过了什么?
更新:
我只是做了一些测试,发现如果我将该值乘以 1000 结果是 1649650039000 等于
Mon 11 April 2022 00:07:19
这有什么原因吗?这是前进的安全方法吗?
更新:
我接受了下面的答案并提供了直接转换为 unix 时间戳的 momentjs。
const date = moment(new Date()).unix();
问题
- Stripe 报告日期字段为 Unix timestamps。这些表示 date/time 自 1970 年 1 月 1 日以来的秒数(有点……闰秒很奇怪)。
- Javascript Date object 尝试转换自 1970 年 1 月 1 日以来的 毫秒 的数量,因为这是与 front-end 更相关的时间增量网络编码。
解决方案
您已经找到了一个合适的解决方案,即将时间戳乘以 1000,从而将以秒为单位的值转换为以毫秒为单位的值。这似乎是围绕 1, 2, 3
的常见工作
我的最终目标是检查 subscription.cancel_at_period_end
是否有 false
并将订阅结束日期存储为时刻日期对象。
const subscriptionEndDate = moment(subscription.current_period_end);
这是测试模式下来自条带的结果字段。
current_period_end: 1649650039
但即使使用 new Date(subscription.current_period_end)
也会返回 1970-01-20T02:14:10.039Z
这不是应该在下一个账单日期显示的字段吗?
有什么想法吗?我错过了什么?
更新:
我只是做了一些测试,发现如果我将该值乘以 1000 结果是 1649650039000 等于
Mon 11 April 2022 00:07:19
这有什么原因吗?这是前进的安全方法吗?
更新:
我接受了下面的答案并提供了直接转换为 unix 时间戳的 momentjs。
const date = moment(new Date()).unix();
问题
- Stripe 报告日期字段为 Unix timestamps。这些表示 date/time 自 1970 年 1 月 1 日以来的秒数(有点……闰秒很奇怪)。
- Javascript Date object 尝试转换自 1970 年 1 月 1 日以来的 毫秒 的数量,因为这是与 front-end 更相关的时间增量网络编码。
解决方案
您已经找到了一个合适的解决方案,即将时间戳乘以 1000,从而将以秒为单位的值转换为以毫秒为单位的值。这似乎是围绕 1, 2, 3
的常见工作