gpt4 book ai didi

javascript - 如何正确地将 end_time 时间戳转换为日期

转载 作者:行者123 更新时间:2023-11-29 21:57:33 25 4
gpt4 key购买 nike

我从 Facebook Insights API 请求数据,粒度设置为一天,让我们以点赞为例。我的要求是:PAGEID/i​​nsights/page_fan_adds_unique/day

响应看起来像这样:

{
"data": [
{
"id": "PAGEID/insights/page_fan_adds_unique/day",
"name": "page_fan_adds_unique",
"period": "day",
"values": [
{
"value": 3,
"end_time": "2014-08-29T07:00:00+0000"
},
{
"value": 4,
"end_time": "2014-08-30T07:00:00+0000"
},
{
"value": 1,
"end_time": "2014-08-31T07:00:00+0000"
}
],
"title": "Daily New Likes",
"description": "Daily: The number of new people who have liked your Page (Unique Users)"
}
]
}

问题是 Facebook 返回的 end_time 值是相关一天结束时 PST 午夜的时间戳。因此,时间戳为 2014-08-31T07:00:00+0000 的行实际上显示了 2014-08-30 的数据(即 consistent with Facebook Insights charts )。

我想做的是将每个数据行的时间戳转换为正确的日期。我的服务器在 CET 中,所以对我来说最简单的事情就是直接从 FB 返回的时间戳中减去 10 小时(所以我的时区有 23:00),我有它,但这显然不是一个好的解决方案.

for(var i=0,j=rows.length;i<j;i++) {
time = rows[i].end_time;
date = moment(time).subtract("hours", 10).format("YYYY-MM-DD");
}

如何正确利用 Moment.js 来做到这一点?

最佳答案

实际上,UTC-7 将是太平洋夏令时 (PDT)。太平洋标准时间 (PST) 是 UTC-8。

但是阅读Facebook Insights documentation ,在常见问题解答中说:

All daily, weekly and monthly Insights data are aggregated according to PDT (Pacific Daylight Time).

这有点奇怪,因为这意味着 -7 全年都在使用,即使 PDT 没有生效。但是,嘿,如果那是文档中的内容,那么我猜 Facebook 有他们的理由。

幸运的是,这很容易用力矩来补偿。

date = moment(time).zone(7).format("YYYY-MM-DD");

对于此操作,您的服务器或客户端的时区无关紧要。

关于javascript - 如何正确地将 end_time 时间戳转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25625326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com