【发布时间】:2014-09-02 14:02:12
【问题描述】:
我从 Facebook Insights API 请求数据,粒度设置为一天,我们以点赞为例。我的请求是:
PAGEID/insights/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 来做到这一点?
【问题讨论】:
标签: javascript facebook timezone momentjs facebook-insights